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

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了通过PHP表单上传文件,文件名的UTF编码错误脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
除了当我上传文件并给它自己的名字(通过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?.

脚本宝典总结

以上是脚本宝典为你收集整理的通过PHP表单上传文件,文件名的UTF编码错误全部内容,希望文章能够帮你解决通过PHP表单上传文件,文件名的UTF编码错误所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。