1

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

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

存储/加载图像的最佳实践是什么?

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

好的,我也这样做。

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

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

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

2 回答 2

0

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

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

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

可以在BalusC 的博客上找到这样一个 servlet 的公开可用且解释清楚的示例

于 2012-07-26T09:16:50.867 回答
0

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

希望能帮助到你

祝一切顺利。..!!!

于 2014-09-15T12:00:12.860 回答