如何从HttpPostedFile创建字节数组

fro*_*sty 148 c# arrays

我正在使用具有FromBinary方法的图像组件.想知道如何将输入流转换为字节数组

HttpPostedFile file = context.Request.Files[0];
byte[] buffer = new byte[file.ContentLength];
file.InputStream.Read(buffer, 0, file.ContentLength);

ImageElement image = ImageElement.FromBinary(byteArray);
Run Code Online (Sandbox Code Playgroud)

Wol*_*yrd 280

使用BinaryReader对象从流中返回字节数组,如:

byte[] fileData = null;
using (var binaryReader = new BinaryReader(Request.Files[0].InputStream))
{
    fileData = binaryReader.ReadBytes(Request.Files[0].ContentLength);
}
Run Code Online (Sandbox Code Playgroud)

  • 二进制阅读器不必关闭,因为有一个使用自动关闭阅读器处理 (28认同)

小智 22

BinaryReader b = new BinaryReader(file.InputStream);
byte[] binData = b.ReadBytes(file.InputStream.Length);
Run Code Online (Sandbox Code Playgroud)

第2行应替换为

byte[] binData = b.ReadBytes(file.ContentLength);
Run Code Online (Sandbox Code Playgroud)


小智 11

如果您的文件InputStream.Position设置为流的末尾,它将无法工作.我的其他内容:

Stream stream = file.InputStream;
stream.Position = 0;
Run Code Online (Sandbox Code Playgroud)

  • 你可以刚刚完成`file.InputStream.Position = 0;` (10认同)