上传具有阿拉伯名称的文件

use*_*538 5 php upload arabic

我正在尝试上传具有阿拉伯名称的文件(مرحبابكم),但是当我将其上传到服务器时,字符串不正确,它会显示这样的字符(ريÙ-Ù).

那么,我如何上传文件并保留正确的阿拉伯名字?

<form action="up.php" method="post" enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file"><br>
<input type="submit" name="submit" value="Submit">
</form>
Run Code Online (Sandbox Code Playgroud)

PHP文件:

 <?php
if ($_FILES["file"]["error"] > 0)
  {
  echo "Error: " . $_FILES["file"]["error"] . "<br>";
  }
else
  {
  echo "Upload: " . $_FILES["file"]["name"] . "<br>";
  echo "Type: " . $_FILES["file"]["type"] . "<br>";
  echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
  echo "Stored in: " . $_FILES["file"]["tmp_name"];
  }
?>
Run Code Online (Sandbox Code Playgroud)

gan*_*esh 0

为什么不能使用 base64 对文件名进行编码和解码。

getfile name->
$encoded_fname = base64_encode("arabic_filename")

upload file->move_uploaded_file with encoded filename;

move_uploaded_file($_FILES["file"]["tmp_name"],"path/to/move/" . $encoded_fname);
Run Code Online (Sandbox Code Playgroud)

下载时如果需要的话可以解码。

希望这能给你一个想法。