gpt4 book ai didi

java - 保存在本地文件夹后如何使用 Spring boot 恢复镜像

转载 作者:行者123 更新时间:2023-12-02 03:33:26 25 4
gpt4 key购买 nike

在这两种情况下,我都需要将图像保存到本地文件夹中并在使用 Spring Boot 后下载它。在我的数据库中,我只保存文件名。

我用这个保存图像:

   @PostMapping("/saveimage")
public ResponseEntity<Usuario> insertProduct(@RequestPart("body") String body,
@RequestPart("imagen") MultipartFile imagen) {
//......
}

但现在,我需要通过 get 请求恢复它才能在其他应用程序上工作。

我怎样才能恢复这个?仅使用 URL 我不能,因为两个应用程序位于不同的服务器上,所以我需要使用 GetRequest 来完成。

我已经尝试过这个:

    @GetMapping("/getimage/{path}")
ResponseEntity<File> imagen(@PathVariable String path) {
File file = new File(this.uploadingDir + path);
return new ResponseEntity<File>(file, HttpStatus.OK);
}

但它无法正常工作,我得到的是完整路径而不是文件。

最佳答案

File仅包含有关文件路径的信息,仅此而已。要从中读取数据,您应该从该文件对象创建一个流。

尝试使用类似的东西。

@GetMapping("/getimage/{path}")
public void adminDownloadProductPicture(@PathVariable("path") String path,
HttpServletResponse response) throws IOException {
File file = new File(this.uploadingDir + path); // or you can use Paths.get(this.uploadingDir + path); instead
Files.copy(file.toPath(), response.getOutputStream());
response.setContentType("image/jpeg"); // your content type here
}

请注意,您应该根据您的图片设置mime类型(内容类型)(image/jpeg、image/gif、image/bmp等)

详细信息和其他方式也请阅读这篇文章https://www.baeldung.com/spring-mvc-image-media-data

关于java - 保存在本地文件夹后如何使用 Spring boot 恢复镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56873288/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com