【问题标题】:How correctly edit users profile and store it's photo?如何正确编辑用户个人资料并存储其照片?
【发布时间】:2017-10-11 08:03:55
【问题描述】:

我有简单的用户个人资料编辑 HTML 表单:

Username  [        ]
Email     [        ]
Password  [        ]
Photo     [ browse ]

[submit]

我知道我应该在数据库中存储图片的链接,但我应该如何正确上传照片?将有多达 500,000 名用户。

我应该为每个用户创建文件夹吗?或者我应该创建0-9991000-1999 等文件夹吗?还是将所有照片存储在一个文件夹中?

在许多网站中,我看到过类似的路径:www.somesite.com/user-profile/cv/17523www.somesite.com/edit-cv-17523/personal-details

这意味着为每个用户创建单独的文件夹来存储照片?

照片命名怎么样?我应该将照片重命名为 17523.png 这样的用户 ID 吗?

【问题讨论】:

  • 您将图像存储在哪里?
  • 您可以将照片存储在按月保存的文件夹中,也可以将照片重命名为用户 ID 以消除冲突。
  • 图片的存储方式与其网址之间通常没有直接关系。考虑一下安全性。我倾向于将图片存储在 1000 个文件夹中,因此文件夹 00000000-00000999 用于前 1000 个,依此类推。但我还没有测试过其他变体。

标签: php html mysql file-upload registration


【解决方案1】:

最好的方法取决于您拥有的数据如何基于您的流程将更改的数据。

有两种存储用户图像的方法。

  1. 将二进制数据放入数据库。
  2. 存储在文件系统中。

如果您选择数据库,则优势在于不需要网络服务器上的任何文件系统权限。但是,如果您拥有庞大的数据库,则从数据库中检索图像所需的时间会增加。

如果您选择文件系统,那么文件系统还有一个额外的优势,那就是让检索变得非常快速和高效。如果您为每个用户维护一个文件夹,这一点很清楚

ex: profileimages/userID/photo.jpg

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多