微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何存储上传的文件与非ASCII文件名?

我不能将UTF-8文件名传递给move_uploaded_file()因为它按字节顺序转换,导致文件系统中出现错误名称。 例如:

move_uploaded_file($_FILES['userfile']['tmp_name'],'uploadé.jpg');

上传目录中创buildxa9.jpg 。

虽然Windows API支持UTF-16 ,但传递这样的文件名(例如iconv('UTF-8','UTF-16','é') )到move_uploaded_file()导致错误

所有特殊字符进行百分比编码是合理的,根据RFC 3986 ,我绝对应该对URI进行相同的处理。 但是,当我使用百分比编码的URI时,Apache给出了一个404错误,因为它解码URL并且找不到那个名字。

在Apache服务器上运行具有Sudo权限的Python CGI脚本

检查从HttpServletResponsestream是由客户端下载 – JAVA

urlpath在本地工作,但不在服务器上

如何使用参数进行外部redirect

允许Apache / PHP对已挂载的目录进行读/写访问

例如: <img src="/upload/%C3%A9.jpg" />给出了Apache错误

文件不存在:[…] /upload/xc3xa9.jpg。

什么才是正确的解决scheme? 如果我在Windows( é.jpg )中重命名文件,编码的HTML URI( %C3%A9.jpg )按预期工作。

关于这个问题的一些信息: http : //www.rooftopsolutions.nl/blog/filesystem-encoding-and-PHP

如何使用C ++的Apache服务器

无法使用PHP加载LDAP函数

RuntimeError:populate()在CentOS 7 |上不可重入 django 1.9 | python3

Access-Control-Allow-Origin问题在同一个域上

如何在上传过程中停止超大file upload?

传递iconv('UTF-8','Windows-1250',$_FILES['userfile']['name'])到move_uploaded_file() , 而不是使用UTF-16 ,并保存HTML的文件名为rawurlencode($_FILES['userfile']['name'])作品。

如果此文件名存储在数据库中,则任何文件请求都应该引用iconv('UTF-8',rawurldecode($filename)) 。

我使用Windows-1250字符集,因为这是我的系统上的认值。

有关MSDN的其他信息:

文件名中使用的字符集 (请参阅: 代码页 )

文件和目录名称 (命名约定)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐