如何从HttpPostedFile创build字节数组

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

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

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

 byte[] fileData = null; using (var binaryReader = new BinaryReader(Request.Files[0].InputStream)) { fileData = binaryReader.ReadBytes(Request.Files[0].ContentLength); } 
 BinaryReader b = new BinaryReader(file.InputStream); byte[] binData = b.ReadBytes(file.InputStream.Length); 

第2行应该被replace

 byte[] binData = b.ReadBytes(file.ContentLength); 

如果您的文件InputStream.Position设置为stream的结尾,它将不起作用。 我的其他行:

 Stream stream = file.InputStream; stream.Position = 0; 

在你的问题,缓冲区和byteArray似乎是字节[]。 所以:

 ImageElement image = ImageElement.FromBinary(buffer); 

在stream.copyto之前,你必须重置stream.position为0; 那么它工作正常。

对于图像,如果您使用的Web页面v2使用WebImage类

 var webImage = new System.Web.Helpers.WebImage(Request.Files[0].InputStream); byte[] imgByteArray = webImage.GetBytes();