若依框架上传下载文件代码示例
以下是使用若依框架进行文件上传和下载的代码示例:
文件上传:
@PostMapping("/upload")
@ResponseBody
public AjaxResult uploadFile(@RequestParam("file") MultipartFile file) throws IOException {
// 判断文件是否为空
if (file.isEmpty()) {
return AjaxResult.error("文件为空");
}
// 生成文件名
String fileName = file.getOriginalFilename();
String filePath = Global.getUploadPath();
File dest = new File(filePath + fileName);
// 判断文件是否存在,如果存在则删除
if (dest.exists()) {
dest.delete();
}
// 保存文件
file.transferTo(dest);
return AjaxResult.success("文件上传成功");
}
文件下载:
@GetMapping("/download/{fileName:.+}")
public ResponseEntity<Resource> downloadFile(@PathVariable String fileName, HttpServletRequest request) throws IOException {
// 加载文件资源
String filePath = Global.getUploadPath() + fileName;
FileSystemResource resource = new FileSystemResource(filePath);
// 判断文件是否存在
if (!resource.exists()) {
throw new RuntimeException("文件不存在");
}
// 获取文件的 MIME 类型
String contentType = null;
try {
contentType = request.getServletContext().getMimeType(resource.getFile().getAbsolutePath());
} catch (Exception e) {
logger.info("无法获取文件类型");
}
// 如果无法获取文件类型,则默认为二进制流
if (contentType == null) {
contentType = "application/octet-stream";
}
// 构建下载响应
return ResponseEntity.ok()
.contentType(MediaType.parseMediaType(contentType))
.header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + resource.getFilename() + "\"")
.body(resource);
}
这些代码示例假定您已经正确配置了若依框架的上传下载路径和相关参数。如果您需要更多帮助,请参考若依框架文档中的文件上传下载部分
原文地址: https://www.cveoy.top/t/topic/fHzw 著作权归作者所有。请勿转载和采集!