我想下载一个文件,同时保留文件的文件名。
我有:
@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或下载文件。巴布亚新几内亚'。
如何保留原始文件名?谢谢
您可以在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);
}
vue 下载文件流怎么保留原文件名? elink.download 怎么获取原文件名
在我的项目中,我正在上传一个文件。上传时,我将其原始文件名和扩展名保存在数据库中,并将该文件与一些一起保存在服务器上,生成的GUID也与文件名和扩展名一起存储在数据库中。 比如-- -用于上载的文件名为Questions.docx -则orignalFileName将为“问题” -文件扩展名将为“.docx” -上传文件,文件名为“0C1B96D3-AF54-40D1-814D-B863B7528
我正在尝试为我的写作应用程序构建一个同步系统,以便我可以将文本文件与Dropbox文件夹同步,并从我的计算机上编辑它们。 问题是,当上传文件时,其修改日期与上传时间相对应,而不是上次修改文件内容的日期,而且看起来Dropbox文件的修改时间比本地文件的修改时间要晚。下载也是一样,因为本地版本的修改日期比Dropbox版本的更新。 当我想比较日期以确定本地版本和网络版本之间的最新版本,以及是否需要上
我有一个应用程序,下载一个单一的html文件和各种图像,有时,mp4视频。 在初次下载后,后台服务每15分钟进行一次重复下载。 该服务检查是否有任何新文件,是否有任何文件被修改(在这种情况下,通常是html文件被修改,一些新的图像将被下载) 我有一个显示html文件的webview,在后台服务成功下载一些新资产后,webview会被刷新。 然而,当服务下载时,应用程序将使用文件,并在webview
在edge中,我正在访问一个JSP页面,该页面会返回一个文件。它在chrome中工作得很好,但在Edge和Internetexplorer中,我会将mime类型附加到文件名中。 这是响应标头: Edge要求我保存文件,文件名是 persistenceIDs.xlsx.vnd.openxmlformats-officedocument.spreadsheetml.sheet 有什么想法吗?
我正在通过php脚本下载一个文件,除了一个丑陋的事实之外,一切都工作得很完美。下载的文件保持相同的url,并附有原始名称。如何在下载文件时保持相同的文件名?