Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 上载具有阿拉伯文文件名的文件_Php_File_Upload_Arabic - Fatal编程技术网

Php 上载具有阿拉伯文文件名的文件

Php 上载具有阿拉伯文文件名的文件,php,file,upload,arabic,Php,File,Upload,Arabic,我试图上传文件,有阿拉伯语的php代码名称 echo move_uploaded_file($_FILES["uploadfile"]["tmp_name"],"images/artimgs/".$_FILES["uploadfile"]["name"]); 但上传文件时,文件夹artimgs中的文件名如下所示:ططططططط§ɐ†.jpg 我希望上传后的文件具有与初始文件相同的阿拉伯文名称。按原样回答您的问题: 您可以检查表单页面编码,它可能是windows-1256,在提交此表单的页面和显

我试图上传文件,有阿拉伯语的php代码名称

echo move_uploaded_file($_FILES["uploadfile"]["tmp_name"],"images/artimgs/".$_FILES["uploadfile"]["name"]);
但上传文件时,文件夹artimgs中的文件名如下所示:ططططططط§ɐ†.jpg

我希望上传后的文件具有与初始文件相同的阿拉伯文名称。

按原样回答您的问题:

您可以检查表单页面编码,它可能是windows-1256,在提交此表单的页面和显示文件名的页面中都必须是utf-8

就守则发表我的意见:


您可以按照[Marc B]的建议自行指定文件名。

或者在上传之前我尝试对文件名进行编码:$imgn=utf8\u encode$\u FILES[uploadfile][name]; $imgtmp=utf8_编码$_文件[上传文件][tmp_名称]; echo move_上传的_文件$imgtmp,images/artimgs/$imgn

但是我得到了同样的结果,这可能会有所帮助:

/* PHP Internal Encoding */
define('PHP_ENC', 'UTF-8');
mb_internal_encoding(PHP_ENC);
ini_set('default_charset', PHP_ENC);

也许这将有助于永远不要使用此代码。您正在打开服务器,使其完全处于远程状态。没有任何东西表明恶意用户不能命名['name']be../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../etc/passwdI只是更改了页面的编码,但我得到了相同的结果,或者我尝试在上传文件之前对文件名进行编码:$imgtmp=utf8_encode$_FILES[uploadfile][tmp_name];echo move_上传的_文件$imgtmp,images/artimgs/$imgn;但是我有相同的结果请您将表单页面代码粘贴到这里,这可能会有所帮助。我把这个和我有相同的结果如果您在类似unix的机器上,您也可以检查操作系统的内部编码。不,我使用的是windows xp,也许当我将站点上载到服务器并使用linux机器时,问题会解决吗?