当前位置: 首页 > 知识库问答 >
问题:

Spring FileSystemResources下载文件,同时保留原始文件名

杨晓博
2023-03-14

我想下载一个文件,同时保留文件的文件名。

我有:

    @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或下载文件。巴布亚新几内亚'。

如何保留原始文件名?谢谢

共有1个答案

傅胡媚
2023-03-14

您可以在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,并附有原始名称。如何在下载文件时保持相同的文件名?