php图片上传

Posted

技术标签:

【中文标题】php图片上传【英文标题】:php image upload 【发布时间】:2011-03-16 04:34:42 【问题描述】:

将图片上传到哪个更好的地方?数据库或网络目录?为什么?

【问题讨论】:

【参考方案1】:

只有在您有特定需求(例如安全性)或绝对需要将所有自定义数据保存在数据库中时,您才应该将图像存储在数据库中。

除此之外,将大文件放入数据库通常是不值得的。存储和检索文件的实现变得更加复杂,并且数据库更新/升级/转换有更多可能出错的事情。

【讨论】:

【参考方案2】:

我没有看到将图像存储在数据库中的优势。这当然没有内在的安全性。文件用于文件系统,因此将图像存储在其中。

【讨论】:

【参考方案3】:

我认为您不能将图像“上传”到数据库。您可以将图像的字符串值存储在数据库中,稍后通过“header(“Content-Type”)”进行流式传输。这样可以节省 Web 服务器的空间,但显然会占用数据库的空间。

如果我是你,我会上传到一个网络目录,这样你就可以在以后获得常规 URL 请求的图像。如果您没有将其放在常规目录中,则每次请求图像时都必须连接到数据库,然后进行流式传输。

【讨论】:

"图像的字符串值" 这就是我的意思。不知道正确的术语,我很抱歉。【参考方案4】:

这取决于您的要求。 如果您将安全性视为主要问题,那么绝对应该将其存储在 db 中,否则不会导致您将图像存储在 db 中。

从数据库中检索图像也相当复杂,因为数据库中的图像存储为二进制数据。因此,如果您有特定需求,则只需将图像存储在数据库中,否则将图像存储在目录中就可以了。

【讨论】:

【参考方案5】:

如您所见,使用/为什么不使用数据库进行图像存储的原因有很多。就我个人而言,我不喜欢使用数据库来存储文件(图像、文档等),除非我被要求存储它们。

-有时你累了并且搞砸了一个查询,比如“SELECT * FROM images”,如果数据库中有太多大尺寸(2MB 或更多)的图像,这将终止服务器。 -安全问题:您仍然可以将文件保存在磁盘中并且仍然是安全的,如何?将文件保存在 web 目录之外,每当请求文件时读取文件并将其提供给用户。 - 如果您有任何机会使用 mysql:如果您的数据库变得很大(比如 2-3 GB),并且您使用的是共享主机,那么祝您备份或尝试恢复该图像数据库好运。

这只是我的观点

【讨论】:

以上是关于php图片上传的主要内容,如果未能解决你的问题,请参考以下文章

php上传图片出现错误

php 在多个上传图片时 怎么获取 要上传的图片宽高

php图片上传为啥要base64上传

php上传图片没有文件名后缀

php中上传多张图片,如何解决?

PHP Fckeditor 上传图片的问题