【问题标题】:Upload Image on Hosting server using Springboot使用 Spring Boot 在托管服务器上上传图像
【发布时间】:2019-05-09 05:58:40
【问题描述】:

我需要一些帮助来上传图片。

我有两个不同的应用程序

  • Springboot 应用程序 - 在我的专用服务器上运行
  • Angular-6 应用程序 - 在我的云服务器上运行

我需要将我的 spring-boot 应用程序中的图像上传到我的 Angular-6 assets 文件夹(assets 文件夹就像我们 spring-boot 应用程序的资源文件夹)

在 application.properties 中,我声明了上传位置,例如 profile_path=D:/documents/profile/(其工作文件带有我的文件系统路径)

    if (!profileImage.isEmpty()) {

        String fileName = profileImage.getOriginalFilename();
        String fileExtenstion = FilenameUtils.getExtension(fileName);

        InputStream is = profileImage.getInputStream();

        Files.copy(is, Paths.get(profile_path + userDetailId + "." + fileExtenstion),
                StandardCopyOption.REPLACE_EXISTING);

        profileImagePath = profile_path + userDetailId + "." + fileExtenstion;
    }

现在,问题出在云服务器路径上 我怎样才能上传到http://www.example.com/documents/profiles/ 或 //103.XXX.XX.XX/documents/profiles/

有没有人可以给我一个建议。

【问题讨论】:

  • 好吧,您在应该是文件系统路径的地方使用网络路径。您在 URL 中看到的路径不是文件系统路径。它们只是一个分层路径,用于标识通过 HTTP 可用的资源。
  • 所以,如果我想在服务器上上传图像,我需要使用哪个选项而不是 Files.copy(Paths.get())
  • 答案就在问题中:使用服务器文件系统上存在的路径,如D:/documents/profile/
  • 上传图片到example.com/documents/profile路径怎么样?
  • 再次,您将 URL 与文件系统路径混淆了。您可以将图像存储在服务器文件系统上的任何位置(或外部服务、数据库或服务器可以存储和查找它们的任何位置)。然后,如果您想在 Web 应用程序中显示这些图像,您可以编写一个 spring mvc 控制器,映射到您选择的路径,该路径与您存储图像的位置无关,然后您从该控制器加载和提供图像.

标签: java spring-boot file-upload


【解决方案1】:

最后我找到了以下解决方案。

解决方案 1: 我们可以使用“D://Documents/”之类的路径将图像上传到我们的文件系统。我们只需要添加我们要上传图片的路径即可。

解决方案 2: 我们可以使用“file:////103.XXX.XX.XX//Documents/”之类的 IP 将图像上传到服务器文件系统。我们需要用 IP 地址提供我们远程位置的路径。

解决方案 3: 我们可以使用 FTPClient (Java-Networking) 在我们的托管站点上上传图像。 以下是参考资料:

【讨论】:

    猜你喜欢
    • 2021-11-07
    • 1970-01-01
    • 2018-01-20
    • 1970-01-01
    • 2019-11-18
    • 1970-01-01
    • 2017-09-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多