J'utilise un composant image qui a une méthode FromBinary. Vous vous demandez comment convertir mon flux d'entrée en tableau d'octets
HttpPostedFile file = context.Request.Files[0];
byte[] buffer = new byte[file.ContentLength];
file.InputStream.Read(buffer, 0, file.ContentLength);
ImageElement image = ImageElement.FromBinary(byteArray);
Utilisez un objet BinaryReader pour renvoyer un tableau d'octets du flux tel que:
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);
la ligne 2 doit être remplacée par
byte[] binData = b.ReadBytes(file.ContentLength);
Cela ne fonctionnera pas si votre fichier InputStream.Position est défini à la fin du flux. Mes lignes supplémentaires:
Stream stream = file.InputStream;
stream.Position = 0;
dans votre question, tampon et byteArray semblent tous deux être byte []. Alors:
ImageElement image = ImageElement.FromBinary(buffer);
Pour les images si vous utilisez Web Pages v2, utilisez WebImage Class
var webImage = new System.Web.Helpers.WebImage(Request.Files[0].InputStream);
byte[] imgByteArray = webImage.GetBytes();
avant stream.copyto, vous devez réinitialiser stream.position à 0; alors cela fonctionne bien.