Rumah > pembangunan bahagian belakang > tutorial php > 上传文件时无法取到中文文件名解决办法

上传文件时无法取到中文文件名解决办法

WBOY
Lepaskan: 2016-06-13 13:43:40
asal
1207 orang telah melayarinya

上传文件时无法取到中文文件名
写了一段简单的服务器端文件上传的处理代码,但是英文名的文件名上传正常,中文名的文件名也不提示错误,但是上传后文件名变为空,比如“文档.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'];
}
?>

Salin selepas log masuk


------解决方案--------------------
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 自己看看哪个正常吧。
Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan