首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >存储用户上传的文件

存储用户上传的文件
EN

Stack Overflow用户
提问于 2014-01-27 18:31:56
回答 5查看 247关注 0票数 0

我正在制作一些东西,用户可以上传文件,特别是图片(jpg,gif和png)。我做了一些显而易见的事情,比如清理文件名,只允许使用字母、数字和一些符号,但是我越想越多,我就会想到更多的问题。

例如,如果用户上传与已经存储的文件同名的文件,该怎么办?它将覆盖它,所以我考虑在文件名的末尾加上一个时间戳,但这不是会对SEO产生负面影响吗?

在存储用户上传的文件时,标准实践是什么,比如将文件实际存储在文件系统中,在数据库中添加一个条目,以及在这种情况下优化SEO的图像?

图片可以匿名上传。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-01-27 18:41:56

一般来说,搜索引擎不会太在意,只要元数据很好,并且文件名包含尽可能接近左边的相关信息。

例如,埃菲尔铁塔. all、埃菲尔铁塔-01.jpg和埃菲尔铁塔-02736293.jpg不会得到那么多不同的SEO分数。

在您的特殊情况下,将"-xx“附加到文件名中,其中xx是同名+1的当前图像的数量,这样做很好。时间戳将更容易实现,但是数字越少,它对搜索引擎和用户的外观就越漂亮。

另一种选择是按日期将它们存储到子文件夹中,如/2014/03/eiffel-tower.jpg。同样,如果有人上传了同名的图像,您可以添加上面的"-xx“。

票数 0
EN

Stack Overflow用户

发布于 2014-01-27 18:37:22

我的建议是将文件存储到例如“上载”目录中。在这个目录中放置一个".htaccess“文件,其中:

代码语言:javascript
复制
deny from all

存储的文件只能通过时间戳和随机数(例如,原名的第一个字母)来命名。然后,将文件信息存储在数据库中。

现在,一个PHP文件来读取请求的文件,还有一些重写规则来重定向到这个PHP文件上的长文件名。

这有意义吗?

票数 0
EN

Stack Overflow用户

发布于 2014-01-27 18:38:15

难道不期望上传一个同名的文件会覆盖旧的文件吗?

如果这不是必需的行为(比如您正在进行备份),那么如果file_exists()那么重命名旧文件,然后将新上传写到旧地址。

代码语言:javascript
复制
bulldog.jpg

复本即成:

代码语言:javascript
复制
bulldog.jpg
1bulldog.jpg

或者类似的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21388762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档