我試圖將上傳的文件保存到數據庫/內存流中,但我無法弄清楚。ASP .Net Web API RC:將多部分文件上傳到MemoryStore
所有我現在是這樣的:
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;
}
但是,當然,這只是將文件保存到特定的位置。我想我必須使用派生自MediaTypeFormatter的自定義類來將其保存到MemoryStream中,但我不知道如何去做。
請幫助。提前致謝!
這是否意味着每一個部分都將被加載到內存中的內容?如果你有大文件上傳,這意味着你必須編寫自己的'MultipartStreamProvider'實現? –
「//做些什麼」有點像......? – simonlchilds