【发布时间】:2012-04-17 11:00:47
【问题描述】:
目前用户可以随意上传文件。所以在上传的文件中有空格、ß, ü等字符。比其他用户可以下载这些文件(包括 URL 中的空格等)。它以这种方式工作,但根据RFC1738 - Uniform Resource Locators (URL) 仅允许字母数字字符[a-zA-Z0-9] 和一些特殊/保留字符。我认为也应该避免空白。
目前我在服务器上的文件名中获得了ß 和ß。想要下载文件的用户会从 MySQL 数据库 (utf8_unicode_ci) 中获取正确的字符 (ß),因此可以在服务器上找到该文件。
- 处理文件名的正确方法是什么?
- 我应该检查文件名并禁止上传吗?
- 是否应该在用户上传后重命名服务器上的文件(例如
str_replace()、urlencode()、...)?
【问题讨论】:
标签: php html web character filenames