Paul Shriner
Paul Shriner

Reputation: 568

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.

Upvotes: 9

Views: 3116

Answers (1)

Paul Shriner
Paul Shriner

Reputation: 568

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;

Upvotes: 26

Related Questions