Sto cercando di salvare (un) file caricati su un database/memorandtream, ma non riesco a capirlo.ASP .Net Web API RC: caricamento file multipart in Memorystream
Tutto quello che ho in questo momento è questa:
public Task<HttpResponseMessage> AnswerQuestion()
{
if (!Request.Content.IsMimeMultipartContent())
{
throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
}
var root = HttpContext.Current.Server.MapPath("~/App_Data");
var provider = new MultipartFormDataStreamProvider(root);
var task = Request.Content.ReadAsMultipartAsync(provider).
ContinueWith<HttpResponseMessage>(t =>
{
if (t.IsFaulted || t.IsCanceled)
{
Request.CreateErrorResponse(HttpStatusCode.InternalServerError, t.Exception);
}
foreach (var file in provider.FileData)
{
Trace.WriteLine(file.Headers.ContentDisposition.FileName);
Trace.WriteLine("Server file path: " + file.LocalFileName);
}
return Request.CreateResponse(HttpStatusCode.OK);
});
return task;
}
Ma naturalmente questo salva solo il file in una posizione specifica. Penso di dover lavorare con una classe personalizzata derivata da MediaTypeFormatter per salvarla in un MemoryStream, ma non vedo come farlo.
Per favore aiuto. Grazie in anticipo!
cosa significa il contenuto di ogni parte verranno caricati in memoria? Se si caricano file di grandi dimensioni, ciò significa che è necessario scrivere la propria implementazione 'MultipartStreamProvider'? –
Che aspetto avrebbe il bit "// fare qualcosa" ...? – simonlchilds