FormData 发送文件和文本信息
const files= this.multUploadConf.multFileList
const contractCode= this.multUploadConf.contractCode
var dataInfo=new FormData();
for (var i = 0;i<files.length;i++){
dataInfo.append("files",files[i].raw)
}
dataInfo.append("contractCode",contractCode)
//发送操作
multFilesUploadJs(dataInfo).then(response=>{
this.$message.success(
response.fileName+"上传成功"
)
this.multUploadConf.uploadOpen=false;
this.getList();
})
2.添加/删除文件
//添加
addFiles(file){
this.multUploadConf.multFileList.push(file);
},
//删除数组
handleRemoveFiles(file){
this.multUploadConf.multFileList.forEach((item,index,arr) => {
if(item.uid === file.uid){
arr.splice(index,1);
}
});
},
3.后端接收
@PostMapping("/common/multFileUpload")
public AjaxResult multFileUpload(MultipartFile[] files, String contractCode) throws Exception {
//多文件json保存
String stringName="";
List<JSONObject> jsonList=new ArrayList<>();
List<String> nameList=new ArrayList<>();
List<String> newNameList=new ArrayList<>();
SysFileInfo sysFileInfo = new SysFileInfo();
try {
// 上传文件路径
String filePath = RuoYiConfig.getUploadPath();
AjaxResult ajax = AjaxResult.success();
for (MultipartFile file:files){
// 上传并返回新文件名称
String fileName = FileUploadUtils.upload(filePath, file);
String url = serverConfig.getUrl() + fileName;
JSONObject json=new JSONObject();
String originalFilename = file.getOriginalFilename();//文件名
String extensionName = originalFilename.substring(originalFilename.lastIndexOf("."));
String fileType = getFileType(extensionName);
String name = fileName.substring(fileName.lastIndexOf("/")+1);
nameList.add(originalFilename);
newNameList.add(name);
// sysFileInfo.setFilePath(fileName);
json.put("name",originalFilename);
stringName=stringName+originalFilename+"\n";
json.put("path",fileName);
jsonList.add(json);
sysFileInfo.setType(fileType);
sysFileInfo.setCreateBy(SecurityUtils.getUsername());
sysFileInfo.setCreateTime(DateUtils.getNowDate());
sysFileInfo.setIsDelete("0");
sysFileInfo.setDeptId(SecurityUtils.getLoginUser().getUser().getDeptId());
}
sysFileInfo.setOriginalName(nameList.toString());
sysFileInfo.setFileName(newNameList.toString());
ajax.put("fileName", stringName);
// ajax.put("url", url);
sysFileInfo.setFilePath(jsonList.toString());
sysFileInfo.setContractCode(contractCode);
sysFileInfoMapper.insertSysFileInfo(sysFileInfo);
return ajax;
} catch (Exception e) {
return AjaxResult.error(e.getMessage());
}