前言:最近遇到一个项目是多图文件用相同字段上传,因为网络通信这一块的知识储备比较贫乏,所以开一贴记录一下,顺便帮助一些小鲜肉共同进步
话不多说,上菜。。。。
image.png这是通过postman模拟的请求参数,通过上图我们可以看出,上传文件真正需要的是下面这个:
请求头信息:Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
文件的唯一标志:Content-Disposition: form-data; name="uploadfiles"; filename="ludashi_baidu.exe"
那么问题来了,我们该怎么组装呢?
首先,我们可以看到请求头中的 Content-Type 是 multipart/form-data,所以我们在上传的时候
是需要Multipart这个注解的
看图就可以知道这个注解是需要和part一起使用的,而我们的参数是不定的,所以使用partMap(胡吹一通,我都信了。。。)
因此接口如下: image.png
下面是使用方法:
image.png
这个是重点,手动拼接文件上传参数!!
hashMap.put("uploadfiles";filename="" + file.getName(), requestBodyFile);
注意:
uploadfiles是服务端要求的key值,服务端的参数应该是:multipartFile[] uploadfiles
上述就是我们手动的拼接出来一个file文件上传的参数,因为filename的不同,可以被上传到同一个请求file数组中,接下来是一张抓包的图片,上面可以清晰的看到请求的参数和参数类型
其实,这个可以说是一个万能的文件上传例子,适用于各种情况,当然你也可以把他抛开了,让他更适用于自己的项目。。。
我发现了另一种方法,但是这种方法,在我另一个项目中上传不上去,大家谨慎使用:
最后,如果有错误的地方,欢迎大佬指正 = =
网友评论