问题描述
上传文件时,后端使用move_uploaded_file函数重命名文件到指定目录,文件名为中文时,保存的文件名乱码了。
原因
move_uploaded_file函数不支持UTF8,文件名包含中文,用utf8编码时,就会出现乱码。但它支持GBK或GB2312编码。所以可以使用iconv将字符串转为GBK或GB2312再执行。
解决方案
使用iconv将字符串转为GBK或GB2312再传给move_uploaded_file,示例如下
$newPathFileNameGBK = iconv("UTF-8", "GBK", $newPathFileName);
move_uploaded_file( $fileObj['tmp_name'], $newPathFileNameGBK );