我不能将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服务器
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] 举报,一经查实,本站将立刻删除。