Tutta la documentazione/esercitazioni/domande sull'elaborazione di un file caricato utilizzando FormData su un gestore WebAPI ASP.NET utilizzare MultipartFormDataStreamProvider
per elaborare il flusso multipart per dividerlo nei campi e nei file modulo rilevanti .Caricamento file WebAPI - Senza scrivere file su disco
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
}
Tuttavia, i file vengono scritti automaticamente in una directory durante l'elaborazione.
Sembra un sacco di problemi quando potrei semplicemente usare HttpContext.Current.Request.Files[0].InputStream
per accedere direttamente a un flusso di file specificato in memoria.
In che modo WebAPI può accedere direttamente al flusso di file direttamente senza l'overhead di IO dell'utilizzo di MultipartFormDataStreamProvider
?
esercitazione ufficiale: http://www.asp.net/web-api/overview/advanced/sending-html-form-data,-part-2
Penso che [questa domanda] (http://stackoverflow.com/questions/19723064/webapi-formdata-upload-to-db-with -extra-parameters) dovrebbe rispondere alle tue esigenze. –
Grazie @JonSusiak - Vorrei aver trovato che poche ore fa, ho finito per fare la stessa cosa esaminando il codice sorgente o 'MultipartFormDataStreamProvider' e usando il provider' MultipartStreamProvider' per darmi il caricamento del file in un 'MemoryStream' piuttosto che scriverlo su disco. Stavo solo ricevendo la risposta. – simbolo
@simbolo - perché ** non ha ** usato 'HttpContext.Current.Request.Files [0] .InputStream'? Potresti spiegare lo svantaggio? – Merenzo