加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

通过PHP表单上传文件,文件名的UTF编码错误

发布时间:2020-12-13 17:15:37 所属栏目:PHP教程 来源:网络整理
导读:除了当我上传文件并给它自己的名字(通过html格式的文本字段)“???? – KARL”时,一切都工作正常. 我为我的网站制作了一个自定义的fileupload / handler / cms,除了文件上传时,一切正常. 当我通过我的ftp程序直接查看文件上传目录时,文件名突然“?…?¤???’-
除了当我上传文件并给它自己的名字(通过html格式的文本字段)“???? – KARL”时,一切都工作正常.

我为我的网站制作了一个自定义的fileupload / handler / cms,除了文件上传时,一切正常.

当我通过我的ftp程序直接查看文件上传目录时,文件名突然“?…?¤???’-KARL”.

>我用< meta charset =“UTF-8”/>运行html5在每一页的开头
>我在使用UTF-8编写代码时编码而没有BOM

我试过iconv(),有什么我想念的吗?我怀疑它是在html格式$_POST [‘name_of_file’]和我运行命令之间

move_uploaded_file($_FILES["file"]["tmp_name"],"upload/" . $_POST['name_of_file'])

进展:我实际上做了一个“utf8_decode”,现在文件被保存为正确的名称,虽然现在在我的网站上显示很奇怪,所以当我想显示它时我必须编码它.

无论如何必须到处输入utf8_encode和utf8_decode?

对于其他人,这篇文章可能有所帮助:How to handle user input of invalid UTF-8 characters?

解决方法

已知PHP文件系统函数会破坏非ASCII文件名.

我建议你去掉/转换所有非ASCII字符,或者,如果不可能,尝试utf8_ [en / de]代码.

另见How to handle user input of invalid UTF-8 characters?.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读