Dans mon application MVC, j’utilise code suivant pour télécharger un fichier.
MODÈLE
VUE
Tout fonctionne très bien... Mais je suis en train de convertir le résultat fiel en byte []. Comment est-ce que je peux faire cela
CONTRÔLEUR DE
Dans mon application MVC, j’utilise code suivant pour télécharger un fichier.
MODÈLE
VUE
Tout fonctionne très bien... Mais je suis en train de convertir le résultat fiel en byte []. Comment est-ce que je peux faire cela
CONTRÔLEUR DE
Comme Darin dit, vous pouvez lire le flux d'entrée - mais je préfère éviter en s'appuyant sur toutes les données disponibles en un seul coup. Si vous êtes en utilisant .NET 4 c'est simple:
MemoryStream target = new MemoryStream();
model.File.InputStream.CopyTo(target);
byte[] data = target.ToArray();
Il est assez facile d'écrire l'équivalent de CopyTo
.NET 3.5 si vous le souhaitez. La partie importante est que vous lisez à partir d' HttpPostedFileBase.InputStream
.
Pour efficace, vous pourriez vérifier si le flux retourné est déjà un MemoryStream
:
byte[] data;
using (Stream inputStream = model.File.InputStream)
{
MemoryStream memoryStream = inputStream as MemoryStream;
if (memoryStream == null)
{
memoryStream = new MemoryStream();
inputStream.CopyTo(memoryStream);
}
data = memoryStream.ToArray();
}
Vous pouvez la lire dans le flux d’entrée :
Et si vous envisagez d’enregistrer directement le fichier sur le disque, vous pouvez utiliser le `` méthode. Vous pourriez trouver utile le post de blog suivant .
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.