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

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

【问题讨论】:

    标签: php mysql database image upload


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

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

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

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

        【讨论】:

          【解决方案5】:

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

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

          这只是我的观点

          【讨论】:

            猜你喜欢
            • 2016-10-12
            • 2013-04-29
            • 2012-11-08
            • 2014-07-05
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多