我想知道建立一个网站的最佳选择,该网站允许用户发送照片以显示在网站的开放部分,我不知道我是否应该在 mysql 中建立一个数据库来接收这些照片,然后到这个表被推到屏幕上,它会增长。还有其他选择吗?就像将这些照片放在一个文件夹中,然后像编写普通的 html 和 css 一样制作一个系统来获取它们。将这些照片作为一个 blob 在表格中获取可能是一种意见,但可能还有其他一些有趣的方式。多谢你们!
2 回答
上传照片时管理用户照片的最佳方法是合并您已经提到的两种方式,如下所示:您在项目的根文件夹中创建一个文件夹,上传照片将位于该文件夹中,您还必须考虑重命名用户照片这样,如果两个不同的用户上传具有相同名称的照片,您就不会发生冲突。其次必须在用户表中添加一个字段,该字段将保存他的照片名称。谢谢。
首先,您永远不应该将照片保存到您的数据库中。数据库应该只保存有关图像的信息,它们存储在哪里,它们的大小等......
第一个解决方案:
您可以将上传的照片保存在服务器上的某个文件夹中,然后当您想要显示这些照片时,只需阅读该文件夹的内容即可获取有关上传照片的信息并在您的网络上显示它们。您可以使用 PHP 轻松列出文件夹的内容。通过这种方式,您可以获得图像位置信息,并且可以轻松地将它们添加到您的 HTML 中。如果您愿意,您可以为每个用户创建一个文件夹。然后您可以从会话中获取用户,并且您知道他的图像已保存到 /uploads/images/{user}/
第二种解决方案:
更好的方法是将照片上传到您的服务器文件夹,但是在上传照片时,您可以将有关照片的信息保存到数据库中。因此,当您要显示照片时,只需通过数据库表即可获得有关上传照片的信息。您将在该表中保存有关照片所需的所有内容,例如 photo_path、photo_size、photo_dimensions、photo_uploader、photo_category 等...
通过这种方式,您可以轻松缓存这些信息并在需要时加快您的网站速度。
第一个解决方案不适用于高流量站点,因为您必须在每个页面请求上列出所有文件夹/图像,这可能会很慢。
无论如何,图像应该进入您的服务器文件夹,并且您可以使用 PHP 函数来读取该文件夹以获取诸如文件夹中有多少图像、它们的大小等信息......您可以使用 PHP 完成所有这些操作。或者更好的是,在将图像上传到文件夹之前,检查每张图像并将该信息保存到数据库中。如果您使用第一个解决方案,您甚至不需要使用数据库,但如果您的网站增长并且您想要提高性能,这可能会咬到您。