下载文件:
- 前端传下载文件的名称
- 后端找到文件的位置,拼接文件名称
- 整理文件的名称(想要用户看见的文件名称)
- 流读取文件内容,将内容写进输出流
public void fileDownload(String fileName, Boolean delete, HttpServletRequest request, HttpServletResponse response) {
try {
if (!FileUtils.isValidFileName(fileName)) {
throw new Exception(String.format("文件名称:%s 非法,不允许下载", fileName));
}
String realFileName = "下载的文件.xlsx";
String filePath = globalProperties.getDownloadPath() + fileName;
response.setCharacterEncoding("utf-8");
response.setContentType("multipart/form-data");
response.setHeader("Content-Disposition", "attchment;fileName=" + FileUtils.setFileDownloadHeader(request, realFileName));
FileUtils.writeBytes(filePath, response.getOutputStream());
if (delete) {
FileUtils.deleteFile(filePath);
}
} catch (Exception e) {
LOGGER.info("下载文件失败", e);
}
}
上传文件
- 校验文件的属性,名称长度,文件大小,后缀等信息
- 在本地创建文件用来承储上传的文件。
- file.transferTo(localFile);