首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用web-api上传文件

如何使用web-api上传文件
EN

Stack Overflow用户
提问于 2012-12-06 11:36:24
回答 2查看 13.3K关注 0票数 4

客户端代码:

代码语言:javascript
复制
<form action="api/MyAPI" method="post" enctype="multipart/form-data">     
<label for="somefile">File</label>     <input name="somefile" type="file" />     
<input type="submit" value="Submit" /> 
</form>

以及如何使用mvc web-api处理上传文件,有一些示例代码吗?

EN

回答 2

Stack Overflow用户

发布于 2015-08-03 13:46:16

超文本标记语言代码:

代码语言:javascript
复制
<form action="api/MyAPI" method="post" enctype="multipart/form-data">     
    <label for="somefile">File</label>     
     <input name="somefile" type="file" />     
    <input type="submit" value="Submit" /> 
    </form>

控制器

代码语言:javascript
复制
         // POST api/MyAPI
        public HttpResponseMessage Post()
        {
            HttpResponseMessage result = null;
            var httpRequest = HttpContext.Current.Request;
            if (httpRequest.Files.AllKeys[0] == "image")
            {
                if (httpRequest.Files.Count > 0)
                {
                    var docfiles = new List<string>();
                    foreach (string file in httpRequest.Files)
                    {
                        var postedFile = httpRequest.Files[file];
                        var filePath = HttpContext.Current.Server.MapPath("~/Images/" + postedFile.FileName);
                        postedFile.SaveAs(filePath);

                        docfiles.Add(filePath);
                    }
                    result = Request.CreateResponse(HttpStatusCode.Created, docfiles);


                }
            }
            else
            {
                result = Request.CreateResponse(HttpStatusCode.BadRequest);
            }
            return result;
        }

链接下面的尝试

这个链接对我来说很有用,希望它能帮到你

http://www.asp.net/web-api/overview/advanced/sending-html-form-data,-part-2

票数 1
EN

Stack Overflow用户

发布于 2018-06-06 11:12:25

您可以使用ApiMultipartFormFormmatter将文件上传到web api 2。通过使用该库,您可以定义一个视图模型来获取客户端提交的参数。例如:

代码语言:javascript
复制
public class UploadFileViewModel 
{
    public HttpFile Somefile{get;set;}
}

代码语言:javascript
复制
public IHttpActionResult Upload(UploadFileViewModel info)
{
    if (info == null)
    {
        info = new UploadFileViewModel();
        Validate(info);
    }

    if (!ModelState.IsValid)
        return BadRequest(ModelState);

    return Ok();
}

嵌套的对象可以被这个库解析。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13736548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档