Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Empty array with BinaryReader on UploadedFile in c#

Assume the following code:

Stream file = files[0].InputStream;

var FileLen = files[0].ContentLength;

var b = new BinaryReader(file);
var bytes = b.ReadBytes(FileLen);

If I upload a CSV file that is 10 records ( 257 bytes ), the BinaryReader fills the array of bytes with "0".

I also wrote a loop to step through the ReadByte Method of the BinaryReader and in the first iteration of the loop, I received the following exception:

Unable to read beyond the end of the stream

When I increase the CSV file to 200 hundred records, everything worked just fine.

The question is then, Why does this happen on smaller files, and is there a workaround that allows the Binary read of smaller files.

like image 621
Paul Shriner Avatar asked Feb 03 '11 07:02

Paul Shriner


1 Answers

Not sure why, but when you are using BinaryReader on an uploaded stream, the start position needs to be explicitly set.

b.BaseStream.Position = 0;
like image 60
Paul Shriner Avatar answered Oct 22 '22 21:10

Paul Shriner