上传文件时无法取到中文文件名
写了一段简单的服务器端文件上传的处理代码,但是英文名的文件名上传正常,中文名的文件名也不提示错误,但是上传后文件名变为空,比如“文档.doc”,上传后就变成了“.doc”。不知为什么,文件名应该是不能为空的。
下面是我写的代码,其中是myfile是客户端上传input的name。
PHP code<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->$upload_path = $_SERVER['DOCUMENT_ROOT']."/upload";$dest_file = $upload_path.basename($_FILES['myfile']['name']);if(move_uploaded_file($_FILES['myfile']['tmp_name'].$dest_file)){ echo "文件已上传至服务器!";}else{ echo "发生错误".$_FILES['myfile']['error'];}?>
------解决方案--------------------bool move_uploaded_file ( string $filename , string $destination )
本函数检查并确保由 filename 指定的文件是合法的上传文件(即通过 PHP 的 HTTP POST 上传机制所上传的)。如果文件合法,则将其移动为由 destination 指定的文件。
我想这个函数缺少一个$destination 的参数传递进去的原因吧.
------解决方案--------------------我也没仔细看 英文是没问题的,这样的话基本可以从编码下手。
对文件名做一个编码转换
$dest_file=iconv('UTF-8','GBK',$dest_file);
utf-8 到 gbk 或者 gbk 到 utf-8 自己看看哪个正常吧。
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn