一、前端
download(url) {
window.open(url)
}
打开一个新的浏览器窗口,请求url
此处的url是从数据库中查询到的字段url的值,是一个ip+端口+接口+上传附件的uuid+.文件类型。
二、后端
@GetMapping("/{fileUUID}")
public void download(@PathVariable String fileUUID, HttpServletResponse response) throws IOException {
// 根据文件的唯一标识码获取文件
File uploadFile = new File(fileUploadPath + fileUUID);
// 设置输出流的格式
ServletOutputStream os = response.getOutputStream();
response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileUUID, "UTF-8"));
response.setContentType("application/octet-stream");
// 读取文件的字节流
os.write(FileUtil.readBytes(uploadFile));
os.flush();
os.close();
}
// http://localhost:9090/file/7737484487db47ab89e58504ddf86ac1.jpg
根据前端发送的请求获取上传附件的uuid+文件类型的值。
@PathVariable 映射 URL 绑定的占位符,fileUUID=7737484487db47ab89e58504ddf86ac1.jpg