简单的图像文件POST到Web Api

时间:2015-10-02 14:43:08

标签: c# asp.net http-post asp.net-web-api

我一直在阅读我在Web Api中构建一个动作方法,以允许发布图像,这些图像将通过字段imageURL保存在服务器上并与Contact对象相关。

我在网上找到了一些如何设置它的例子,我想测试它们。我目前有:

public Task<HttpResponseMessage> PostFile() 
{ 
    HttpRequestMessage request = this.Request; 
    if (!request.Content.IsMimeMultipartContent()) 
    { 
        throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType); 
    } 

    string root = System.Web.HttpContext.Current.Server.MapPath("~/Content/images"); 
    var provider = new MultipartFormDataStreamProvider(root); 

    var task = request.Content.ReadAsMultipartAsync(provider). 
        ContinueWith<HttpResponseMessage>(o => 
    { 

        string file1 = provider.BodyPartFileNames.First().Value;
        //Use file name to update ImageURL of contact

        return new HttpResponseMessage() 
        { 
            Content = new StringContent("File uploaded.") 
        }; 
    } 
    ); 
    return task; 
}

来自How To Accept a File POST,虽然我理解我想要正确测试它的流程。

客户端调用的示例是什么样的API方法,我可以将contactid作为标题包含在内?

我需要正确理解这个代码示例,以便我可以更多地了解这一点,但我对这个领域并不熟悉。我有一种鸡蛋和鸡蛋的场景,我对发布和接收图像知之甚少,需要一个起点。

感谢。

1 个答案:

答案 0 :(得分:0)

您可以使用小型MVC或ASP应用程序(您只需要一个页面),您可以使用某些JS插件将文件发布到控制器。 插件:jQueryFileUploadDropzoneJS。最后一个更容易集成。这两个插件都支持发送其他数据。