Php MYSQL可以处理图像吗?

Php MYSQL可以处理图像吗?,php,mysql,image,Php,Mysql,Image,如何在MySQL数据库中存储多个图像,并在需要时调用它们?我需要在我的网站上存储个人资料和他们的照片的多个数据。请帮忙 更新的问题 p.S.-我知道有一种解决方案可以将文件存储在文件系统上。但我想知道在DB上存储它的过程。因此,请帮助我,而不是给出唐突的答案。在我看来,这似乎太过分了,效率不高,而且我从来没有听说过有人将文件直接存储在数据库中。。不过,我还是觉得我很有经验 你不能把你的图片存储在服务器上的某个地方,然后把路径存储在数据库上吗?在我看来,这似乎太过分了,效率也不高,而且我从来没有听

如何在MySQL数据库中存储多个图像,并在需要时调用它们?我需要在我的网站上存储个人资料和他们的照片的多个数据。请帮忙

更新的问题


p.S.-我知道有一种解决方案可以将文件存储在文件系统上。但我想知道在DB上存储它的过程。因此,请帮助我,而不是给出唐突的答案。

在我看来,这似乎太过分了,效率不高,而且我从来没有听说过有人将文件直接存储在数据库中。。不过,我还是觉得我很有经验


你不能把你的图片存储在服务器上的某个地方,然后把路径存储在数据库上吗?

在我看来,这似乎太过分了,效率也不高,而且我从来没有听说过有人将文件直接存储在数据库中。。不过,我还是觉得我很有经验


您不能将图片存储在服务器上的某个位置,并将路径存储在DB上吗?

使用BLOB数据类型

BLOB代表二进制大对象,可用于存储任何类型的二进制文件,包括图像

希望这有帮助


Andy使用BLOB数据类型

BLOB代表二进制大对象,可用于存储任何类型的二进制文件,包括图像

希望这有帮助


安迪

我也会回答,这样做不是个好主意

顺便说一句,您可以使用BLOB列类型执行此操作,并且在上载函数中,您必须将其作为$_FILES['upload_file']['name']插入查询中

例如:
INSERT-INTO-db_表(id,image)值(NULL,{$_FILES['userfile']['name']})

我还将回答这样做不是一个好主意

顺便说一句,您可以使用BLOB列类型执行此操作,并且在上载函数中,您必须将其作为$_FILES['upload_file']['name']插入查询中

例如:
INSERT-INTO-db_表(id,image)值(NULL,{$_FILES['userfile']['name']})

您可以使用blob类型来存储二进制数据,但我强烈建议您不要这样做

出于性能原因,应将图像存储在数据目录中,然后将路径保存在数据库中

这将允许您使用php的内置文件输出方法(readfile)以及x-sendfile

如果您需要从数据库加载图像,那么您将为每个请求在php内存中加载图像

但如果你真的想这么做

<?php
saving the file would be something like this
$file = $_FILES['uploadedfile']['tmp_name'];
$data = addslashes(fread(fopen($file, "r"), filesize($file)));

mysql_query("INSERT INTO files (file) VALUES ('$data')");

您可以使用blob类型来存储二进制数据,但我强烈建议您不要这样做

出于性能原因,应将图像存储在数据目录中,然后将路径保存在数据库中

这将允许您使用php的内置文件输出方法(readfile)以及x-sendfile

如果您需要从数据库加载图像,那么您将为每个请求在php内存中加载图像

但如果你真的想这么做

<?php
saving the file would be something like this
$file = $_FILES['uploadedfile']['tmp_name'];
$data = addslashes(fread(fopen($file, "r"), filesize($file)));

mysql_query("INSERT INTO files (file) VALUES ('$data')");

我认为您不应该在数据库中存储de图像。
在web环境中,将图像存储在服务器硬盘中(或存储在外部服务中,如AmazonS3或其他解决方案)。在数据库中,您只需要存储对此图像的引用

例如,如果您在/home/web/中有一个网站,您可以创建一个类似/home/web/images/的目录。更好的做法是创建不同的目录,如/home/web/images/2011/03/因为在一个目录中创建过多的文件不是一个好主意

然后,您可以将此路径存储在用户表中: 字段图像:varchar(XXX)='/home/web/images/2011/03/image for one user.jpg'

在HTML中写入de图像时:

<img src="/images/2011/03/image-for-one-user.jpg" />

您的问题的答案是:您可以将二进制数据存储在mysql中的blob字段中。
但是我不喜欢它。想想看,如果您有多个用户,您将拥有一个非常大的数据库。

我认为您不应该在数据库中存储de图像。 在web环境中,将图像存储在服务器硬盘中(或存储在外部服务中,如AmazonS3或其他解决方案)。在数据库中,您只需要存储对此图像的引用

例如,如果您在/home/web/中有一个网站,您可以创建一个类似/home/web/images/的目录。更好的做法是创建不同的目录,如/home/web/images/2011/03/因为在一个目录中创建过多的文件不是一个好主意

然后,您可以将此路径存储在用户表中: 字段图像:varchar(XXX)='/home/web/images/2011/03/image for one user.jpg'

在HTML中写入de图像时:

<img src="/images/2011/03/image-for-one-user.jpg" />

您的问题的答案是:您可以将二进制数据存储在mysql中的blob字段中。
但是我不喜欢它。试想一下,如果您有多个用户,您将拥有一个非常大的数据库。

为什么不将它们存储在文件系统中,并将路径保存在数据库中?如果我想存储在文件系统中,也可以,但我想尝试如何存储在数据库中。如前所述,使用blob字段并使用load_file函数()加载文件。为什么不将它们存储在文件系统中并保存在数据库中?如果我想存储在文件系统中也可以,但我想尝试如何存储在数据库中。如前所述,使用blob字段并使用load_file函数()加载文件。你能告诉我如何在网页上使用图像吗?你可以创建一个只显示标题图像的页面(“内容类型:image/jpeg”);然后在页面上回显字段图像并放入一个(例如),我还认为您可以执行类似的操作:“border=“0”alt=“your alternative”/>不将图像上载到数据库,它只保存上载图像的文件名。我的错…Marc B是对的…您必须在…之前读取文件内容,例如$extract=fopen($_FILES['userfile']['tmp_name'],'r');$content=fread($extract,$size);$content=addslashes($content);fclose($extract);然后将$content写入数据库。您能告诉我如何在网页上使用该图像吗?您可以创建