所以,我正在使用Spring Framework开发简单的Web应用程序。
应用程序用户可以上传图像。
存储/加载图像的最佳做法是什么?
我在某个论坛上找到了解决方案,有人建议将文件存储到user.dir目录。
好的,我也这样做。
当用户上传图像时,我将图像存储到user.dir目录。
现在,我有一个问题:如何将图像从user.dir目录加载到页面?
<img src="path/to/dir/where/images/stored"/>
答案 0 :(得分:0)
最佳做法是将此类数据存储在webapp的树之外,以避免重新部署问题。它们存储的确切位置更符合惯例,user.dir确实是一个合理的选择。
你不能直接提供这些文件,通常是通过创建一个映射到例如images/*
的servlet完成,该servlet解析请求URL(例如<img src="approot/images/apic.jpg"/>
)并基于该URL获取并提供服务path/to/dir/where/images/stored/apic.jpg
。作为一个额外的好处,servlet可以让您完全控制下载内容,何时以及由谁,也许您将在以后的应用程序生命周期中进行此类控制。
您可以使用getPathInfo检索servlet名称后面的URL部分,为输出设置正确的MIME类型,并将请求的文件流式复制到servlet的输出。
上找到这种servlet的公开可用,解释良好的示例答案 1 :(得分:0)
我们最近在我们的一个项目中遇到了类似的情况,因此我们决定将所有用户个人资料照片存储在应用程序目录的文件夹中。然后在我们的servlet实现中,我们检索了文件夹的路径,以便在我们必须存储img时,我们可以在那里有一个独立于平台的实现,我们将动态生成的img名称与db中的其他配置文件详细信息一起存储,因此存储和检索只是一个数据库查找的问题以及将来如果我们需要更改img的目录,我们需要做的就是更新路径变量的值。
希望有所帮助
一切顺利。 .. !!!