sto*_*ter 2 design-patterns spring-mvc
这个问题可能是愚蠢的,但我真的没有看到如何解决它:免得说在我的应用程序中,我有一个用户.此用户编辑他的个人资料,并需要编辑他的头像.
我应该在哪里存储头像文件?首先,我将所有文件保存在src\main\webapp\resources中,但每次重新部署该文件夹时都会清空.
所以我决定放在另一个位置:c:\ wwwdir\resources,但我无法从远程页面链接本地资源,所以我无法显示任何头像.
任何的想法?建议?链接?
在找到解决方案之前需要考虑的事项:
对于未横向缩放的Web应用程序,您可以将文件系统用作图像存储.这很简单,易懂,而且有效.
对于水平扩展的webapp,您需要将图像存储在每个servlet容器可以到达的位置.这可能是一个数据库(我不推荐这个),S3(我推荐这个),或者一个内容库(我从未使用过其中一个).S3的一个优点是它可以很好地扩展.您可以将它放在CloudFront(亚马逊的CDN)之后,或者只是服务器脱离S3并保持服务器的负载.
您还在提问中提到您无法从远程客户端服务器本地资源.这是正确的,有点......我猜你正在尝试使用某些URL file://c:/.../image.jpg
.这不行.您需要做的是映射处理程序以提供图像.这可能看起来像
@RequestMapping(value = "/image/{name}.jpg", method = RequestMethod.GET)
public void image(@PathVariable("name") String name, HttpServletResponse response) {
// Read the image from the file system using java.io
// Write the image to the response output stream
// Even better use org.springframework.utils.FileCopyUtils
}
Run Code Online (Sandbox Code Playgroud)