如何从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();