美文网首页
retrofit2.0文件数组形式的上传

retrofit2.0文件数组形式的上传

作者: 空老表 | 来源:发表于2017-12-06 16:13 被阅读0次

前言:最近遇到一个项目是多图文件用相同字段上传,因为网络通信这一块的知识储备比较贫乏,所以开一贴记录一下,顺便帮助一些小鲜肉共同进步

话不多说,上菜。。。。

image.png

这是通过postman模拟的请求参数,通过上图我们可以看出,上传文件真正需要的是下面这个:

请求头信息:Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
文件的唯一标志:Content-Disposition: form-data; name="uploadfiles"; filename="ludashi_baidu.exe"

那么问题来了,我们该怎么组装呢?

首先,我们可以看到请求头中的 Content-Typemultipart/form-data,所以我们在上传的时候
是需要Multipart这个注解的

image.png
看图就可以知道这个注解是需要和part一起使用的,而我们的参数是不定的,所以使用partMap(胡吹一通,我都信了。。。)
因此接口如下: image.png
下面是使用方法:
image.png
这个是重点,手动拼接文件上传参数!!

hashMap.put("uploadfiles";filename="" + file.getName(), requestBodyFile);

注意:
uploadfiles是服务端要求的key值,服务端的参数应该是:multipartFile[] uploadfiles
上述就是我们手动的拼接出来一个file文件上传的参数,因为filename的不同,可以被上传到同一个请求file数组中,接下来是一张抓包的图片,上面可以清晰的看到请求的参数和参数类型

image.png

其实,这个可以说是一个万能的文件上传例子,适用于各种情况,当然你也可以把他抛开了,让他更适用于自己的项目。。。

我发现了另一种方法,但是这种方法,在我另一个项目中上传不上去,大家谨慎使用:

image.png image.png

最后,如果有错误的地方,欢迎大佬指正 = =

相关文章

  • retrofit2.0文件数组形式的上传

    前言:最近遇到一个项目是多图文件用相同字段上传,因为网络通信这一块的知识储备比较贫乏,所以开一贴记录一下,顺便帮助...

  • 上传文件

    单文件和多文件上传单文件上传(只能上传单个文件) 多文件上传(可以上传单个,多个使用数组方式) 提交文本信息和文件...

  • Retrofit2.0上传空文件

    昨天在项目上遇到一个需求,固定两个文件参数的上传,但是有的时候可能有个文件参数是空的,以前没遇到过这种需求,问度娘...

  • WebApi获取传来的文件

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

  • ThinkPHP 5 文件上传及指定宽高生成缩略图公共方法 --

    /** * 单文件上传 * name:表单上传文件的名字 * ext: 文件允许的后缀,字符串形式 * path:...

  • iView批量上传文件

    一、批量上传文件 思路 创建一个数组,把需要上传的文件放到这个数组里面,最后将文件发送给后台 代码 html 数据...

  • 第十六章 文章上传和下载

    文件上传 多数文件上传都是通过表单形式提交给后台服务器,因此,要实现文件上传,就要提供一个文件上传的表单,而该表单...

  • 多种文件上传的方式(struts2,springMVC)

    SpringMVC的文件上传形式@Controllerpublic class UploadController ...

  • Flutter 多文件上传( FormData )

    定义一个收集文件的数组 点击上传文件按钮,底部弹出 (相机、图库)来选择 显示图片 使用 FormData() 上传文件

  • Java Web开发—如何实现文件上传与下载

    对于文件上传,浏览器在上传的过程中是将文件以流的形式上传到服务端的。如果直接使用Servlet获取上传文件的输入流...

网友评论

      本文标题:retrofit2.0文件数组形式的上传

      本文链接:https://www.haomeiwen.com/subject/gatlixtx.html