数据库和用户的照片管理

时间:2012-11-07 21:07:25

标签: php mysql database content-management-system photo

我想知道构建网站的最佳选择,该网站允许用户发送照片以显示在网站的开放部分,我不知道是否应该在mysql中构建数据库以接收这些照片和然后到这个表被推到屏幕上,它就会增长。还有其他选择吗?就像在一个文件夹上获取这些照片然后制作一个系统来获取它们,就像编写正常的html和css一样。将这些照片作为一个blob获取在桌面内可能是一个意见,但可能有一些其他可能有趣的方式来了解。谢谢你们!

2 个答案:

答案 0 :(得分:1)

在上传照片时管理用户照片的最佳方法是合并您已经提到的两种方式,如下所示:您在项目的根文件夹中创建一个文件夹,其中上传的照片将位于此处,您还需要考虑以这样的方式重命名用户照片,即如果两个不同的用户上传具有相同名称的照片,则不会发生冲突。其次,必须在用户表中添加一个字段,用于保存其照片的名称。感谢。

答案 1 :(得分:1)

首先,您永远不应该将照片保存到数据库中。 数据库应该只保存有关图像的信息,存储的位置,大小等等......

第一个解决方案:

您可以将上传的照片保存在服务器的某个文件夹中,然后当您想要显示这些照片时,只需阅读该文件夹的内容即可获取有关已上传照片的信息并在网络上显示。您可以使用PHP轻松列出文件夹的内容。这样您就可以获得图像位置信息,并且可以轻松地将它们添加到HTML中。如果需要,您可以为每个用户设置一个文件夹。然后你可以从让我们说会话中获取用户,你知道他的图像被保存到/ uploads / images / {user} /

第二个解决方案:

更好的方法是将照片上传到您的服务器文件夹,但在上传照片时,您可以将有关照片的信息保存到数据库中。因此,当您想要显示照片时,只需浏览数据库表,然后获取有关上传照片的信息。您可以保存该表中所需的有关照片的所有内容,例如photo_path,photo_size,photo_dimensions,photo_uploader,photo_category等...

通过这种方式,您可以轻松缓存这些信息,并在需要时加快您的网站速度。

第一个解决方案不适用于高流量网站,因为您必须在每个页面请求中列出所有文件夹/图像,这可能会很慢。

无论如何,图像应该进入你的服务器文件夹,你可以使用PHP函数来读取该文件夹,以获取信息,例如文件夹中有多少图像,它们的大小等等......你可以用PHP完成所有这些操作。或者甚至更好,在将图像上传到文件夹之前,检查每个图像并将该信息保存到数据库中。如果您使用第一个解决方案,您甚至不需要使用数据库,但如果您的网站增长并希望提高性能,这可能会让您感到厌烦。