2

请试着理解我的好奇心

假设有一个拥有大量用户的 Web 应用程序。每个用户可以上传数百
张图片,登录到他/她的帐户后,可以根据自己的
意愿查看这些图片。

例如- Facebook等社交网站。

所以我的问题

  1. 他们如何在服务器中存储这么多图像?
    • 在数据库中作为 BLOB 数据?或者
    • 在每个用户的服务器专用文件夹中?
  2. 如果我选择使用数据库,那么
    • 我是否应该从数据库中检索图像,将它们复制到服务器中的临时文件夹中,并
      通过 <img src ='/serverpath/image'> 标记为每个会话获取图像?

那么它们如何存储和检索呢?
现在在我的应用程序中有用户详细信息(没有照片),每当我点击“查看图像”
链接时,照片应该出现而不刷新页面。根据我对存储和检索的上述担忧,如何使用Java实现这一点?

4

2 回答 2

4

保存在文件夹中,保存到数据库的路径。在从 db 检索读取路径并相应地放置 src

于 2012-05-16T07:01:36.973 回答
3

将图像保存在文件夹中,重命名图像以添加一些用户指定的 id 等。要图片,所以你不能有两张具有相同ID的图片。然后将路径保存到数据库中。

我建议使用 ImageMagick 之类的东西将图像保存到文件夹。它可以更改图像的名称,如果您愿意,可以更改它的格式和大小。

当您想向用户显示图片时,只需从数据库中获取该路径,该路径具有指定的用户 ID 来显示属于用户的图片。

如果您确实拥有像 facebook 这样的数百万张图片,则将图像直接保存到数据库不是一个好选择。

而且我不认为您可以使用 java 显示该图像,我建议使用 javascript 和 ajax 。检查此页面以获取帮助,http://www.w3schools.com/ajax/ajax_example.asp

于 2012-05-16T07:07:47.770 回答