WebApi获取传来的文件

WebApi获取传来的文件

梦的方向叫闯_aa65关注

2018.06.05 16:15:57字数 51阅读 1,171

1、如果是以文件的形式上传,这样接收:

  public IHttpActionResult getTest2() {
            string id = HttpContext.Current.Request["id"];
            string name = HttpContext.Current.Request["name"];
            HttpFileCollection files = HttpContext.Current.Request.Files; 
            foreach (string key in files.AllKeys)
            {
                HttpPostedFile file = files[key];//file.ContentLength文件长度  
                if (string.IsNullOrEmpty(file.FileName) == false)
                    file.SaveAs(HttpContext.Current.Server.MapPath("~/App_Data/")  + file.FileName);
            }
            return Ok("success2");
        }

2、如果是以文件流的形式上传(如从Android端使用retrofit上传多文件),这样接收:

 [HttpPost]
        public async Task<string> InsertPics()
        {   var root = HttpContext.Current.Server.MapPath("~/App_Data");
            var provider = new MultipartFormDataStreamProvider(root);
            await Request.Content.ReadAsMultipartAsync(provider);
            var httpContents = provider.Contents;
            int i = 0;
            foreach (var content in httpContents)
            {
                var suffix =  content.Headers.ContentDisposition.Name.Trim('"').Split('.').Last();
                var arrayAsync = content.ReadAsByteArrayAsync();
                FileStream stream = new FileStream(root + "\\" + i++ + "." +  suffix, FileMode.CreateNew);
                stream.Write(arrayAsync.Result, 0, arrayAsync.Result.Length);
                stream.Close();
            }
            return null;
        }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值