我的问题很简单。
我该如何从ASP.NET Web API的POST或PUT请求中获取HttpPostedFile?
我看到可以从请求中获取各种信息,例如Request.Header、Request.Content、Request.Properties。在其中哪里可以找到我传递的文件,以及如何从中创建HttpPostedFile?
谢谢!
我的问题很简单。
我该如何从ASP.NET Web API的POST或PUT请求中获取HttpPostedFile?
我看到可以从请求中获取各种信息,例如Request.Header、Request.Content、Request.Properties。在其中哪里可以找到我传递的文件,以及如何从中创建HttpPostedFile?
谢谢!
public Task<HttpResponseMessage> Post([FromUri]string filename)
{
Guid uploadedFile = Guid.NewGuid();
Task<HttpResponseMessage> task = Request.Content.ReadAsStreamAsync().ContinueWith<HttpResponseMessage>(t =>
{
if (t.IsFaulted || t.IsCanceled)
throw new HttpResponseException(HttpStatusCode.InternalServerError);
try
{
using (Stream stream = t.Result)
{
//TODO: Write the stream to file system / db as you need
}
}
catch (Exception e)
{
Object o = e;
return Request.CreateResponse(HttpStatusCode.InternalServerError, e.GetBaseException().Message);
}
return Request.CreateResponse(HttpStatusCode.Created, uploadedFile.ToString());
});
return task;
}
var contents = message.Content.ReadAsMultipartAsync(); // message is HttpRequestMessage
其中一个内容将包含您的文件。