【问题标题】:Store user picture online and retrieve it在线存储用户图片并检索
【发布时间】:2012-12-16 05:35:03
【问题描述】:

作为我的应用程序注册过程的一部分,用户可以选择个人资料图片。我的第一个想法是将图片存储在我的数据库中,但我读到这不是一个好主意。我认为另一种解决方案是将图像上传到文件系统并将路径存储在数据库中。这是执行此操作的正确方法吗?是否可以保存在我的系统中存储未知文件?

【问题讨论】:

    标签: database image file-upload


    【解决方案1】:

    您必须始终使用上传功能检查您接受哪些文件。
    至于图片check this post

    【讨论】:

      【解决方案2】:

      最好将图片存储在database,特别是当有一些相关数据时..

      filesystem 中存储图片可能会导致并发问题和其他您需要自己处理的问题。

      【讨论】:

        【解决方案3】:

        将图像和其他二进制资产存储在数据库中可能会很痛苦 - 您无法从 SQL 命令行轻松查看它们,对图像进行编码和解码的过程可能是一个性能问题,而且数据库相对较少您可以对二进制 blob 执行的操作。

        但是,也有许多好处 - 图像与数据库的其余部分一起备份,并且在负载平衡的服务器场中,您不必担心跨多个 Web 服务器文件复制图像系统。

        为了两全其美,我建议将图像存储在数据库中,但将它们缓存在 Web 服务器的文件系统中。这样,如果您向服务器场添加更多服务器,缓存将在请求映像时建立。通过缓存图像,您无需为每个请求支付“解码”性能损失。

        您永远不应该相信您的用户所做的任何事情 - 您至少应该限制用户可以上传到图片的文件类型(.png、.jpg 等)。如果您正在运行一个大型公共网站,请考虑通过病毒扫描程序运行上传的文件 - 我知道现在图像文件类型中没有任何漏洞,但几年前有 some,他们可能会回来。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-10-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-11-25
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多