springboot2.0 + MultipartFile 实现文件上传
话不多说,直接开撸
1、yml
#设置上传文件大小
spring:
servlet:
multipart:
#单个文件最大值
max-file-size: 30MB
enabled: true
max-request-size: 30MB
2、代码
public JsonResult uploadFile( @RequestParam("file") MultipartFile file) {
String msg = "上传成功";
boolean upload = true;
if (file.isEmpty()) {
//todo 跳转到错误页面,提示信息
msg = "文件为空,请检查";
return new JsonResult(msg, upload, null);
} else {
String fileName = file.getOriginalFilename();
/**
public static String fileUpload;
@Value("${config.extPath}")
public void setExtPath(String extPath) {
fileUpload = extPath + System.getProperty("file.separator") + "static/apk/";
}
*/
String filePath = (fileUpload + fileName).toString();
//检查文件 返回true 表示文件已近已近存在了
if (OtherToolUtil.cheackFile(filePath)) {
msg = "本次上传的文件服务器已经存在,请修改文件名称";
upload = false;
return new JsonResult(msg, upload, null);
}
try {
FileUtil.uploadFile(file.getBytes(), fileUpload, fileName);
} catch (Exception e) {
msg = "保存文件失败,请检查路径是否匹配";
upload = false;
return new JsonResult(msg, upload, null);
}
}
return new JsonResult(msg, upload, null);
}
/**
* 检查文件是否存在了
*/
public static boolean cheackFile(String filePathUrl) {
boolean is_cheak = false;
File file = new File(filePathUrl);
if (file.exists()) {
//如果文件已经存在
is_cheak = true;
}
return is_cheak;
}
2、文件删除
//删除文件
File file = new File(fileURL);
if (file.exists()) {
//如果文件存在 就删除文件
if (file.delete()) {
//删除数据库对应的数据
if (uploadService.deletefileById(Integer.valueOf(fileId))) {
msg = "删除文件和对应数据库数据成功";
isDel = true;
}
}
} else {
msg = "文件不存在";
}