如何将文件的完整路径添加到视图中?

How to add the full path with file to the view?

我想发送完整曲目以查看和显示,如 http://localhost:8080/fileaName。然后我按下 link 并将文件保存在我的磁盘上。

           String fileDownloadUri = ServletUriComponentsBuilder.fromCurrentContextPath()
            .path("src/main/resources/temp/")
            .path(fileName)
            .toUriString();
    model.addAttribute("fileDownloadUri", fileDownloadUri);

现在我在页面上看不到 link

<span th:href="${fileDownloadUri}"></span>

不确定控制器的端点是什么样子。但我会使用下面的控制器和视图来显示直接下载 link 到文件。

控制器:

    @GetMapping("/downloadFile/{fileId}")
    public ResponseEntity<Resource> downloadFile(@PathVariable String fileId) {
        // Load file from your source
        AppUserDocument appUserDocument = someDocumentStorageService.getFile(fileId);


        return ResponseEntity.ok()
                .contentType(MediaType.parseMediaType(appUserDocument.getFileType()))
                .header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + appUserDocument.getFileName() + "\"")
                .body(new ByteArrayResource(appUserDocument.getData()));
    }

然后在 thymeleaf 视图中,我会提供下载 link,如下所示:

<td> <a class="btn btn-sm btn-primary" th:href="@{/downloadFile/{id}(id=${myfile.id})}">Download</a></td>

您可以在此处参考我的 github 存储库:

https://github.com/ajkr195/springbootfileupldnldRESTDB

或提供对此负责的完整控制器方法。以便 SO 人员可以帮助您。