配置文件:
jeecg :
path :
#pdf路径
pdf: D:\\opt\\webapp\\pdf
Controller层
/**
* 上传pdf文件
*/
@PostMapping(value = "/uploadPdfFile")
public Result<Object> uploadPdfFile(@RequestParam("file") @NotNull(message = "pdf文件不能为空") MultipartFile file) {
Result<Object> result = new Result<>();
String message="";
try {
pdfService.uploadPdfFile(file);
message = StrUtil.format("上传pdf文件成功");
result.setSuccess(true);
} catch (IOException e) {
message = StrUtil.format("上传pdf文件失败");
result.error500(message);
e.printStackTrace();
}
return result;
}
Service层
@Value("${jeecg.path.pdf}")
private String pdfPath;
public void uploadRiskClause(MultipartFile file) throws IOException {
//上传内容
File files = new File(pdfPath);
//装备目标文件地址
File dir = new File(pdfPath).getAbsoluteFile();
log.info("目标文件地址dir = {}",dir);
if (!dir.exists()) {
dir.mkdirs(); //不存在就创建文件夹
}
//获取上传文件的名字
String OriginalFilename = file.getOriginalFilename();
String fileName = FileNameUtil.getName(OriginalFilename);
//获取文件类型
String type = FileTypeUtil.getType(file.getInputStream());
log.info("上传文件名称-{},文件类型-{}",fileName,type);
if(!"pdf".equals(type)){
throw new JeecgBootException("文件仅支持pdf格式");//jeecgBoot框架自定义异常
}
if (fileName.length() >= 80) {
throw new JeecgBootException("文件名过长,请检查文件名称保证不超过80个字符");//jeecgBoot框架自定义异常
}
//存在就关联文件夹 和 文件名字
File dest = new File(dir, fileName);
file.transferTo(dest);
}