相关疑难解决方法(0)

Request.Content.ReadAsMultipartAsync永远不会返回

我有一个使用ASP.NET Web Api编写的系统的API,我试图扩展它以允许上传图像.我已经做了一些谷歌搜索,并找到了如何使用MultpartMemoryStreamProvider和一些异步方法接受文件的推荐方法,但我在ReadAsMultipartAsync上等待永远不会返回.

这是代码:

[HttpPost]
public async Task<HttpResponseMessage> LowResImage(int id)
{
    if (!Request.Content.IsMimeMultipartContent())
    {
        throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
    }

    var provider = new MultipartMemoryStreamProvider();

    try
    {
        await Request.Content.ReadAsMultipartAsync(provider);

        foreach (var item in provider.Contents)
        {
            if (item.Headers.ContentDisposition.FileName != null)
            {

            }
        }

        return Request.CreateResponse(HttpStatusCode.OK);
    }
    catch (System.Exception e)
    {
        return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e);
    }
}
Run Code Online (Sandbox Code Playgroud)

我可以一路走到:

await Request.Content.ReadAsMultipartAsync(provider);
Run Code Online (Sandbox Code Playgroud)

它永远不会完成.

我等待永远不会回来的原因是什么?

更新

我试图使用curl POST这个动作,命令如下:

C:\cURL>curl -i -F filedata=@C:\LowResExample.jpg http://localhost:8000/Api/Photos/89/LowResImage
Run Code Online (Sandbox Code Playgroud)

我也尝试使用以下html来POST动作,同样的事情发生:

<form method="POST" action="http://localhost:8000/Api/Photos/89/LowResImage" enctype="multipart/form-data">
    <input type="file" name="fileupload"/>
    <input type="submit" name="submit"/>
</form>
Run Code Online (Sandbox Code Playgroud)

c# c#-5.0 asp.net-web-api

54
推荐指数
2
解决办法
3万
查看次数

标签 统计

asp.net-web-api ×1

c# ×1

c#-5.0 ×1