2010-11-21 98 views
1

我创建了一个表单,允许用户将图像上传到服务器中的文件夹。如何将图像插入数据库?我在名为blog的数据库中创建了一个名为upload的表名称,以及名为MediumBLOB的值为image的行。将图像插入数据库

如果上述听起来不合逻辑,我该如何从服务器动态调用图像?

谢谢。

+1

是不是有一个原因,你不离开图像的文件系统,只存储路径或ID到它的数据库? – Matthew 2010-11-21 05:59:52

+0

@konforce不,没有具体原因。你能解释我可以如何将ID存储在数据库中,然后用ID调用图像?谢谢。我是否在img标签中定义ID?谢谢。 – brad 2010-11-21 06:01:32

+0

(小写字母b),通常我只是做一个getimg.php?id = 234234脚本,然后该PHP脚本将重定向到图像,按原样返回文件内容,或者处理任何裁剪/调整大小必要(并缓存它)。无论如何,它都会查找数据库中的映像ID并找到服务器上实际文件的路径。 – Brad 2010-11-21 08:12:09

回答

1

参见this howto。但是,您应该真的考虑使用参数化查询,而不是内联传递查询参数。

+0

伟大的链接。但现在我有点困惑。我应该将完整的图像存储在数据库中,还是为其分配一个ID,然后通过ID调用它?谢谢 – brad 2010-11-21 06:04:22

+0

大多数数据库管理员建议不要在数据库中存储像图像这样的大块blob数据,因为每次需要获取映像时都会不必要地对数据库服务器征税。有两种方法可以解决这个问题:将文件存储在webroot中的一个目录中,以便Web服务器可以按原样托管它们,或将它们存储在其他位置并使用脚本来提供它们(例如'image.php?id = xxx')。无论哪种方式,是的,将实际文件名更改为数据库中图像的ID,或者想出其他方式将数据库条目映射到文件系统条目。 – cdhowie 2010-11-21 06:07:00

+0

@brad:它罕见的youll实际上是想将图像本身存储在db中。 jsut在文件系统上存储路径。那么当你去显示它时,它将文件系统路径转换为公共路径和图像。 – prodigitalson 2010-11-21 06:08:19