WebAPI du Téléchargement du Fichier - Sans l'écriture de fichiers sur le disque

L'ensemble de la documentation /tutoriels /questions à propos du traitement d'un fichier téléchargé à l'aide de FormData à un ASP.NET WebAPI gestionnaire d'utilisation MultipartFormDataStreamProvider pour traiter le multipart flux de split dans les champs de formulaire et les fichiers.

var root = HttpContext.Current.Server.MapPath("~/App_Data");
var provider = new MultipartFormDataStreamProvider(root);

await Request.Content.ReadAsMultipartAsync(provider);

foreach (MultipartFileData file in provider.FileData)
{
   //File
}

Toutefois, les fichiers sont automatiquement enregistrés dans un répertoire au cours de processsing.

Il semble que beaucoup de tracas quand je pouvais HttpContext.Current.Request.Files[0].InputStream pour accéder à un fichier donné flux directement en mémoire.

Comment peut-WebAPI d'accéder simplement le flux de fichier directement, sans IO généraux de l'aide MultipartFormDataStreamProvider?

Tutoriel officiel: http://www.asp.net/web-api/overview/advanced/sending-html-form-data,-partie-2

  • Je pense que Cette Question devrait répondre à vos besoins.
  • Merci @JonSusiak - je souhaite que je trouve qu'il y a quelques heures, j'ai fini par faire exactement la même chose en examinant le code source ou MultipartFormDataStreamProvider et à l'aide de la MultipartStreamProvider fournisseur pour me donner de l'upload d'un fichier dans un MemoryStream plutôt que de l'écrire sur le disque. A été juste en train de rond à l'affichage de la réponse.
  • pourquoi ne pas vous utilisez HttpContext.Current.Request.Files[0].InputStream? Pourriez-vous expliquer l'inconvénient?
  • Microsoft a vraiment un bon exemple de la façon de télécharger les fichiers: docs.microsoft.com/en-us/aspnet/web-api/overview/advanced/...
InformationsquelleAutor simbolo | 2015-01-15