Cara membuat byte array dari HttpPostedFile

I'm menggunakan gambar komponen yang memiliki FromBinary metode. Bertanya-tanya bagaimana saya mengkonversi input stream menjadi byte array

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

ImageElement image = ImageElement.FromBinary(byteArray);
Mengomentari pertanyaan (2)
Larutan

Menggunakan BinaryReader objek untuk kembali byte array dari sungai seperti:

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

baris 2 harus diganti dengan

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

Itu tidak't bekerja jika file anda InputStream.Posisi diatur ke ujung sungai. Saya garis tambahan:

Stream stream = file.InputStream;
stream.Position = 0;
Komentar (1)

dalam pertanyaan anda, baik buffer dan byteArray tampaknya byte[]. Jadi:

ImageElement image = ImageElement.FromBinary(buffer);
Komentar (0)

sebelum streaming.copyto, anda harus me-reset streaming.posisi ke 0, kemudian itu bekerja dengan baik.

Komentar (0)

Untuk gambar jika anda menggunakan Halaman Web v2 gunakan WebImage Kelas

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