1艘儒、前端官方文檔:https://uniapp.dcloud.net.cn/api/request/network-file.html#uploadfile
一茅撞、多文件上傳參數(shù)falePath钝凶、name不必填寫
image
二颜阐、files數(shù)組 由Object組成M谙ⅰ=獭楷兽!(不是filePath!2舛住4∮佟U阜拧I诳痢!)
image
三币砂、前端代碼:
image
2建峭、后端代碼
接收formData內(nèi)容,請求信息中獲取MultipartFile信息决摧。
image
前端:
function uploadFiles(folderId) {
return new Promise((resolve, reject) => {
let comment_sql = squel.select().from('Comment').where('folderId = ?', folderId).toString();
let action = dynamicDb.queryData(comment_sql);
action.then(commentList =>{
console.log(commentList)
if (commentList.length > 0) {
try {
let filePathArr = [];
let files = [];
commentList.forEach(async i => {
let sb = await sbFun(i.url).catch((err) =>{console.error(err)});
filePathArr.push(sb)
isHave(sb);
files.push({
"name":i.name,
"uri":sb
})
})
setTimeout(()=>{
if(filePathArr.length > 0){
let commentJson = JSON.stringify(commentList);
uni.uploadFile({
url: uploadFilesUrl,
files: files,
// name: 'file',
formData: {
"coreFileListStr":commentJson,
},
success: (res) => {
console.info(res)
if (res.statusCode == 200) {
resolve('success')
} else {
if (res.data.message) {
reject('上傳附件失斠谡簟:' + res.data.message)
} else {
reject('上傳附件失敗,網(wǎng)絡(luò)異常:' + res.statusCode)
}
}
},
fail: (err) => {
console.error(err)
reject('上傳附件失敗掌桩,' + err.errMsg)
},
complete: () => {
console.log("上傳結(jié)束")
}
})
}
},300)
} catch (err) {
//TODO handle the exception
console.error(err)
try {
err = JSON.stringify(err)
} catch (err) {
//TODO handle the exception
}
reject('上傳附件失敗边锁,' + err)
}
}else{
//無附件信息
resolve('none files')
}
})
})
}
后端:
@Log(value = "上傳項目附件", type = LogType.INSERT)
@RequestMapping(value = "/files/upload", method = RequestMethod.POST)
void uploadProjectFile(@RequestParam("coreFileListStr") String coreFileListStr, HttpServletRequest request){
CommonsMultipartResolver commonsMultipartResolver =new CommonsMultipartResolver(request.getSession().getServletContext());
commonsMultipartResolver.setDefaultEncoding("utf-8");
if (commonsMultipartResolver.isMultipart(request)){
MultipartHttpServletRequest mulReq = (MultipartHttpServletRequest) request;
Map<String,MultipartFile> map = mulReq.getFileMap();
List<MultipartFile> resultList = new ArrayList<>();
if (!map.isEmpty()){
for(Map.Entry<String,MultipartFile> result : map.entrySet()){
resultList.add(result.getValue());
}
uploadService.uploadProjectFile(coreFileListStr,resultList);
}
}
}