我想在保留文件名的同时下载文件。
我有:
@RequestMapping(value = "/downloadFile", method = RequestMethod.GET, produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)
@ResponseBody
public FileSystemResource getFile(@RequestParam(value="filename") String filename) {
return new FileSystemResource(uploadDir + "/" + filename);
}
我可以下载文件,但下载的文件名始终为“ downloadFile.pdf”或“ downloadFile.png”。
如何保留原始文件名?谢谢。
答案 0 :(得分:0)
您可以在Spring中尝试以下代码。
@GetMapping(value = "/downloadFile", method = RequestMethod.GET, produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)
public ResponseEntity<?> downloadFile(@RequestParam(value="filename") String filename) {
String dirPath = "your-location-path";
byte[] fileBytes = null;
try {
fileBytes = Files.readAllBytes(Paths.get(dirPath + fileName));
} catch (IOException e) {
e.printStackTrace();
}
return ResponseEntity.ok()
.contentType(MediaType.APPLICATION_OCTET_STREAM)
.header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + fileName + "\"")
.body(fileBytes);
}