Php MySQL-在数据库中存储图像?

Php MySQL-在数据库中存储图像?,php,mysql,Php,Mysql,假设我们表格的每一行都包含各种待售车辆的信息。每个用户可以存储每个车辆的多个图像。 存储这些图像的好方法是什么 重复: 重复: 重复: 重复: 重复: 重复: 重复:听起来像是家庭作业。您需要从车辆表到图片表的一对多关系。pictures表将包含一个包含图像的BLOB列。或者它可能包含一个VARCHAR列,其中包含存储在磁盘上的图像文件名。直接在数据库中存储图像数据的开销可能会成为一个问题,特别是对于流量大的大型站点 通常,我在服务器上存储图像时有一个命名约定,文件名会从用户上传的任何文件中重新

假设我们表格的每一行都包含各种待售车辆的信息。每个用户可以存储每个车辆的多个图像。 存储这些图像的好方法是什么

重复:
重复:
重复:
重复:
重复:
重复:

重复:

听起来像是家庭作业。您需要从
车辆
表到
图片
表的一对多关系。
pictures
表将包含一个包含图像的BLOB列。或者它可能包含一个VARCHAR列,其中包含存储在磁盘上的图像文件名。

直接在数据库中存储图像数据的开销可能会成为一个问题,特别是对于流量大的大型站点


通常,我在服务器上存储图像时有一个命名约定,文件名会从用户上传的任何文件中重新写入,但如果愿意,您可以保留用户提供的原始文件名,只要确保对其进行清理即可。数据库只存储图像的元数据,因此Web服务器可以直接处理对图像文件的请求。

我希望您应该将图片存储在一些文件夹中,以便在检索时更容易。若要存储在数据库中,可以使用BLOB数据类型

我知道数据库是存储图像的错误位置。只需存储图像的位置。我同意,大多数情况下。我认为这是一个家庭作业,OP需要知道两种常见的方法。你可以使用一个文件夹,数据库应该知道哪些文件属于哪个用户,所以由你的代码决定哪些文件可以被用户覆盖,哪些文件不能被用户覆盖。您可以使用PK ID+文件类型扩展名存储图像,也可以将图像存储为MD5哈希或。。。。。有很多种方法,但不要将它们与原始文件名一起存储。这会产生更多的问题(文件名中的空格,specialchars..aso.)@DJDonaL3000:如果在一个文件夹中存储太多图像,大多数文件系统都会变慢。解决这个问题的一种方法是使用分层文件夹结构。例如,如果您的图像名为100.jpg、101.jpg、225.jpg等等,请创建一个文件夹/images/100并将图像100-199存储在那里。创建一个文件夹/images/200等。另一种方法是使用每个bucket对应文件系统中的一个文件夹。另一种方法是使用类似Amazon S3的东西,您可以在一个bucket中放入无限数量的唯一命名的图像,然后在您的网页中通过URL引用它们。这个问题已经被问过很多次了。