Retrofit2.0+ .Net MVC4(WebApi) 上传多张图片

发布时间:2020-06-19 17:37:21 作者:Eumenides_s
来源:网络 阅读:1439

最近在做Android项目,使用的是MVP+Retrofit+rxjava+dagger的项目架构,RestFul 服务使用的.Net平台的WebApi。由于业务中需要有多文件上传的功能。所以在这里记载一下,便于以后查阅。

()
Observable<HttpResult<String>> addEvent(() Event entity, ()List<MultipartBody.Part> parts);
List<MultipartBody.Part> getFilesMap() {

    = ArrayList<MultipartBody.Part>();
    File file = ;
    {
        (!= && .size() > ) {
            (String path : ) {
                file = File(path);
                RequestBody requestBody = RequestBody.(MediaType.(), file);
                MultipartBody.Part part = MultipartBody.Part.(, file.getName(), requestBody);
                .add(part);
            }
        }
    } (Exception e) {
        e.printStackTrace();
    }


    ;
}
addEvent() {
    Event entity = .getEntity();

    List<MultipartBody.Part> fileMap = .getFilesMap();
    .clear();

    {
        Subscription subscription = .getRetrofitInstance()
                .create(EventInterface.)
                .addEvent(entity, fileMap)
                .subscribeOn(.io()).observeOn(.ui()).subscribe(Subscriber<HttpResult<String>>() {
                    onCompleted() {

                    }

                    onError(Throwable e) {
                        .setLoadingIndicator();

                        e.printStackTrace();

                    }

                    onNext(HttpResult<String> httpResult) {
                        (httpResult.getResultCode() != ConstData.HttpResult.) {
                            .setLoadingIndicator();
                        } {
                            .setLoadingIndicator();
                        }


                    }
                });
        .add(subscription);
    } (Exception e) {
        e.printStackTrace();
    }

}

 

               [HttpPost]
        public HttpResult<string> AddEvent()
        {
            //获取EventET 的属性
            HttpRequest request = HttpContext.Current.Request;
            string entity = request.Form[0];
            BaseBN baseBN = new BaseBN();
            EventET et = baseBN.CTJsonSerializer<EventET>(entity);
            SystemBN bn = new SystemBN();
            et.EVENT_ID = bn.CreateID("EVENT", HaiQu.N, "EVENT_ID", "EVENT", EventType.YiYou);
            List<string> addr = new List<string>();
            //获取上传的文件
            HttpFileCollection coll = request.Files;
            for (int i = 0; i < coll.Count; i++)
            {
                HttpPostedFile file = coll.Get(i);
                String filename = file.FileName.Substring(file.FileName.LastIndexOf("\\") + 1);
                if (!Directory.Exists(System.Web.HttpContext.Current.Server.MapPath("~/Upload/" + et.EVENT_ID)))//如果不存在就创建file文件夹
                {
                    Directory.CreateDirectory(System.Web.HttpContext.Current.Server.MapPath("~/Upload/" + et.EVENT_ID));
                }
                string fileSavePath = string.Format("~/Upload/" + et.EVENT_ID + "/{0}", filename);
                file.SaveAs(System.Web.HttpContext.Current.Server.MapPath(fileSavePath));
                addr.Add(fileSavePath);
            }
            EventBN eventBN = new EventBN();
            HttpResult<string> result = eventBN.AddEvent(et, addr, HaiQu.N);
            return result;
          
        }



推荐阅读:
  1. php的mvc模式是什么?
  2. php MVC开发模式的Controller的作用是什么?

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

mvc retrofit2.0

上一篇: RocketMQ源码阅读

下一篇:使用注册表添加IE信任网站

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》