【问题标题】:Java Web App upload and load imagesJava Web App 上传和加载图片
【发布时间】:2012-07-26 09:11:31
【问题描述】:

所以,我正在使用 Spring Framework 开发简单的 Web 应用程序。

应用程序用户可以上传图片。

存储/加载图像的最佳做法是什么?

我在某个论坛上找到了解决方案,有人建议将文件存储到 user.dir 目录。

好的,我也这样做。

当用户上传图像时,我将图像存储到 user.dir 目录。

现在,我有一个问题:如何将图像从 user.dir 目录加载到页面?

 <img src="path/to/dir/where/images/stored"/>

【问题讨论】:

    标签: java web-applications


    【解决方案1】:

    最佳实践确实是将此类数据存储在 webapp 的树之外,以避免重新部署时出现问题。它们的确切存储位置更多的是约定俗成的问题,user.dir 确实是一个合理的选择。

    您不能直接提供这些文件,通常是通过创建一个映射到例如images/* 的servlet 来解析请求URL(例如&lt;img src="approot/images/apic.jpg"/&gt;)并基于该URL 获取并提供path/to/dir/where/images/stored/apic.jpg。作为一个额外的好处,servlet 让您可以完全控制下载的内容、下载时间和由谁下载,也许您稍后会在应用程序生命周期中需要这种控制。

    您可以使用getPathInfo 检索 servlet 名称后面的 URL 部分,为输出设置正确的 MIME 类型,并将请求的文件流式复制到 servlet 的输出。

    可在BalusC's blog 上找到此类 servlet 的公开可用且解释清楚的示例

    【讨论】:

      【解决方案2】:

      我们最近在我们的一个项目中遇到了类似的情况,因此我们决定将所有用户个人资料图片存储在应用程序目录中的一个文件夹中。然后在我们的 servlet 实现中,我们检索到文件夹的路径,这样我们就可以在那里拥有一个独立于平台的实现,每当我们必须存储一个 img 时,我们将动态生成的 img 名称以及其他配置文件详细信息存储在 db 中,因此存储和检索只是一个数据库查找的问题以及将来如果我们需要更改 img 的目录,我们需要做的就是更新路径变量的值。

      希望对你有帮助

      一切顺利。 ..!!!

      【讨论】:

        猜你喜欢
        • 2011-02-20
        • 1970-01-01
        • 2018-07-03
        • 1970-01-01
        • 2016-11-07
        • 1970-01-01
        • 1970-01-01
        • 2015-02-03
        • 2015-02-07
        相关资源
        最近更新 更多