let uploadUrl = HttpUtils.GET_BASE_URL() + this.url+"/register";
return new Promise((resolve, reject)=>{
uni.uploadFile({
url: uploadUrl,
files: files,
header: {},
formData: form,
success(uploadFileRes) {
console.log(uploadFileRes);
let resp = uploadFileRes.data;
if(typeof resp === "string") {
resp = JSON.parse(resp);
}
resolve(resp);
},
fail(resp) {
console.log(resp);
reject(resp);
}
})
})
- 发布:2024-12-24 21:39
- 更新:2024-12-24 22:40
- 阅读:23
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: Windows 11 家庭版 23H2
HBuilderX类型: 正式
HBuilderX版本号: 4.36
手机系统: Android
手机系统版本号: Android 12
手机厂商: 华为
手机机型: HUAWEI ART-AL00x
页面类型: vue
vue版本: vue2
打包方式: 云端
项目创建方式: HBuilderX
示例代码:
操作步骤:
APP端使用uni.uploadFile上传多张图片,同一个name,后端使用同一个参数接受
APP端使用uni.uploadFile上传多张图片,同一个name,后端使用同一个参数接受
预期结果:
APP端上传的文件,后端可以接收到多长图片
APP端上传的文件,后端可以接收到多长图片
实际结果:
APP端上传的文件,后端只能接受到一张图片
APP端上传的文件,后端只能接受到一张图片
l***@sina.cn (作者)
试了一下,用不同的name是可以上传成功,可是对于接口来说很不友好呀,难道官方是希望我服务端的接口写成这样?
@PostMapping("/testFile")
@ResponseBody
public void testFile(@RequestParam(value = "pictureFiles_0", required = false) MultipartFile file0
, @RequestParam(value = "pictureFiles_1", required = false) MultipartFile file1, @RequestParam(value = "pictureFiles_2", required = false) MultipartFile file2
, @RequestParam(value = "pictureFiles_3", required = false) MultipartFile file3, @RequestParam(value = "pictureFiles_4", required = false) MultipartFile file4
, @RequestParam(value = "pictureFiles_5", required = false) MultipartFile file5, @RequestParam(value = "pictureFiles_6", required = false) MultipartFile file6
, @RequestParam(value = "pictureFiles_7", required = false) MultipartFile file7, @RequestParam(value = "pictureFiles_8", required = false) MultipartFile file8
, @RequestParam(value = "pictureFiles_9", required = false) MultipartFile file9) {
System.out.println("==============files.length===========");
}
l***@sina.cn (作者)
抱歉抱歉,是我学艺不精,后端不能再用Multipart来接收了,应该用MultipartRequest来接收,然后再自行处理,代码如下:
files.getMultiFileMap().forEach((key, multipartFiles) -> {
MultipartFile multipartFile = multipartFiles.get(0);
//对文件的具体操作
});
但是,实话说,虽然我这个问题解决了,但是为什么H5可以这样批量上传,APP却要服务端处理呢?这是个问题。
l***@sina.cn (作者)
我发现,提BUG基本没有官方的人来回答,邀请了也没用,可是UNIAPP却又有这么多的问题,这么多用的不方便的地方,唉。。。估计只有付费技术咨询,才会有人来解答吧。uniapp祝你越来越好。
l***@sina.cn (作者)
这样用来实现批量上传,也忒坑了吧?有没有办法解决一下。。。
2024-12-24 22:29
l***@sina.cn (作者)
我这是上传10张,万一我要是上传20张,那我这接受参数得写20个?
2024-12-24 22:30