从HTTP客户端到C#Web Api的图像上载
我正在尝试将图像从()上传到我的C#API。将来我想从Android或iPhone应用程序调用这个API,但我想在任何这样的设备上实现它之前,我需要这个部分工作 此C#代码放在我的api:s ValuesController中。默认情况下我调用的控制器。我已经确保(通过断点)可以访问并正确调用下面的方法从HTTP客户端到C#Web Api的图像上载,c#,.net,dhc,C#,.net,Dhc,我正在尝试将图像从()上传到我的C#API。将来我想从Android或iPhone应用程序调用这个API,但我想在任何这样的设备上实现它之前,我需要这个部分工作 此C#代码放在我的api:s ValuesController中。默认情况下我调用的控制器。我已经确保(通过断点)可以访问并正确调用下面的方法 public async Task<HttpResponseMessage> PostFormData() { // Check if the request
public async Task<HttpResponseMessage> PostFormData()
{
// Check if the request contains multipart/form-data.
if (!Request.Content.IsMimeMultipartContent())
{
throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
}
string root = HttpContext.Current.Server.MapPath("~/App_Data");
var provider = new MultipartFormDataStreamProvider(root);
try
{
// Read the form data.
await Request.Content.ReadAsMultipartAsync(provider);
// This illustrates how to get the file names.
foreach (MultipartFileData file in provider.FileData)
{
Trace.WriteLine(file.Headers.ContentDisposition.FileName);
Trace.WriteLine("Server file path: " + file.LocalFileName);
}
return Request.CreateResponse(HttpStatusCode.OK);
}
catch (System.Exception e)
{
return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e);
}
}
我错过了什么?对于上述方法,我似乎忘记了提及mimetype 检查发送数据的输入 确保其基本属性设置为:
- 姓名:
- 类型:
- 价值:(我认为这不是必要的。)
您应该发布代码的HTML端,以确保它是相同的问题。Simon,尝试将“name”添加到输入控件中,您可能会丢失它
<input type="file" id="fileInput" name="fileInput"/>
await Request.Content.ReadAsMultipartAsync(provider);
<input type="file" name="dataFile" value="Choose..." multiple/>
<input type="file" id="fileInput" name="fileInput"/>