我遇到了一个问题,我使用move_uploaded_file()
函数上传文件和一些用阿拉伯语命名的文件,所以我在谷歌上搜索了这个问题,但仍然没有答案。我使用了元标记,使用了Base64编码和其他一切,但仍然不起作用。解决方案是什么?
<?php
$data_name=$_POST['name'];
$name=base64_encode($_FILES['file']['name']);
$location="../Files/".$course_name."/";
$tmp_name=$_FILES['file']['tmp_name'];
if(move_uploaded_file($tmp_name, $location.$name))
echo"OK";
?>
一种解决方案可以是:
有一个数据库,保存你的文件的阿拉伯名称,并为该文件提供一些自定义的唯一名称和当前时间,也将自定义名称保存到数据库中,在检索时更改文件名并显示给用户。
或者使用一些名称转换库,将文本从阿拉伯语转换为英语,反之亦然。为此,请查看这些参考
如何将英语动态转换为阿拉伯语
将波斯/阿拉伯数字转换为英语数字
或者使用php将字符串转换为utf-8以获得帮助:
PHP:在不知道原始字符集的情况下将任何字符串转换为UTF-8,或者至少尝试
http://php.net/manual/en/function.utf8-encode.php