文件上传代码,可以直接去加入到工具类中去使用
/**
* 通用上传请求(多个)
*/
@PostMapping("/uploads")
public AjaxResult uploadFiles(List<MultipartFile> files) throws Exception {
try {
// 上传文件路径
String filePath = YedSdkConfig.getUploadPath();
List<String> urls = new ArrayList<String>();
List<String> fileNames = new ArrayList<String>();
List<String> newFileNames = new ArrayList<String>();
List<String> originalFilenames = new ArrayList<String>();
for (MultipartFile file : files) {
// 上传并返回新文件名称
String fileName = FileUploadUtils.upload(filePath, file);
String url = serverConfig.getUrl() + fileName;
urls.add(url);
fileNames.add(fileName);
newFileNames.add(FileUtils.getName(fileName));
originalFilenames.add(file.getOriginalFilename());
}
AjaxResult ajax = AjaxResult.success();
ajax.put("urls", StringUtils.join(urls, FILE_DELIMETER));
ajax.put("fileNames", StringUtils.join(fileNames, FILE_DELIMETER));
ajax.put("newFileNames", StringUtils.join(newFileNames, FILE_DELIMETER));
ajax.put("originalFilenames", StringUtils.join(originalFilenames, FILE_DELIMETER));
return ajax;
} catch (Exception e) {
return AjaxResult.error(e.getMessage());
}
}
出现的问题:文件过大,Maximum upload size exceeded;The field files exceeds lit maximum permitted size of 10485760 bytes.
这个问题是上传文件超过了最大值,要修改配置文件
- 第一:修改配置文件 上传单个文件大小。在配置文件中 spring配置下 servlet-multipart 有两个属性,"单个文件":“max-file-size”,“总上传文件大小”:"max-request-size".
- 第二:取消文件大小限制,在上面的两个两个属性的值设置为“-1”
- 第三:分块上传
- 第四:使用第三方文件上传服务