上传中文文件名为空

WBOY
Freigeben: 2016-06-23 14:18:41
Original
933 Leute haben es durchsucht

比如 你好.txt 上传到服务器就成了 .txt,文件名部分是空的,不知道为什么。windows系统下文件名不是不允许为空吗?

上传处理代码

<?$upload_path = $_SERVER['DOCUMENT_ROOT']."/upload/";$tmp_file = $_FILES['myfile']['name'];$dest_file = $upload_path.basename($tmp_file);if(move_uploaded_file($_FILES['myfile']['tmp_name'],$dest_file)){ echo "文件已上传至服务器根目录的upload目录下!";	 print_r($dest_file);}else{  echo	"文件上传时发生了一个错误".$_FILES['myfile']['error'];}?>
Nach dem Login kopieren


HTML代码
<html><head><title>upload</title></head><body><form enctype="multipart/form-data" action="upload.php" method="POST">上传此文件:<input name = "myfile" type="file" /><input type="submit" value="提交上传" /></form></body></html>
Nach dem Login kopieren


回复讨论(解决方案)

如果文件名是英文或者数字都是没有问题的。

建议用英文、数字作为文件名,这样移植行更强一些。

如果非要中文名,那就urlencode一下,读取时urldecode过来

gbk字符在utf-8环境中显示为空的正常现象

如果用户上传自己的文件中带有中文怎么办

urlencode和urldecode应该怎么写代码呀,小弟学PHP时间不长,请各位大神指点。

用当前时间戳命名最简单
$dest_file = $upload_path.basename($tmp_file);
改为

$ext=pathinfo($tmp_file,PATHINFO_EXTENSION)$dest_file = $upload_path.time().'.'.$ext;
Nach dem Login kopieren


或者用base64编码,感觉要比urlencode要好。

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage