提问者:小点点

php上传时如何更改文件名[重复]


我有这个密码

<?php //  display  file  upload  form
if  (!isset($_POST['submit']))  { ?>
<form enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF']?>" method="post">

<input type="hidden" name="MAX_FILE_SIZE" value="8000000" /> Select file:

<input type="file" name="data" />

<input type="submit" name="submit" value="Upload  File" /></form>

<?php
}  else  {
//  check  uploaded  file  size
if  ($_FILES['data']['size']  ==  0)  {
die("ERROR:  Zero  byte  file  upload");
} //  check  if  this  is  a  valid  upload
if  (!is_uploaded_file($_FILES['data']['tmp_name']))   {
die("ERROR:  Not  a  valid  file  upload"); } //  set  the  name  of  the  target  directory
$uploadDir  =  "./uploads/"; //  copy  the  uploaded  file  to  the  directory
move_uploaded_file($_FILES['data']['tmp_name'],  $uploadDir  .  $_FILES['data']['name'])  or  die("Cannot  copy  uploaded  file"); //  display  success  message
echo  '<p style="text-align: center">
Soubor byl úspěšně nahrán na server. <br>
<a href="index.php" class="button1">Zpět</a>
</p>

' ; } ?>

我有一个问题-它可以工作,将文件上传到服务器,但如果文件名出现中断,我无法下载。e、 g我想上传“my salaryúnor.pdf”,但服务器一直在寻找“my”文件。是否有办法修改此代码以将文件名中的分隔符更改为“\u1”?另外,我希望服务器是utf-8字母(因为服务器将文件名更改为愚蠢的名称,例如u?nor),所以如果有一个选项也可以,那就太好了。(或者让php更改文件名inty“my_salary_unor”谢谢大家的帮助和建议。


共1个答案

匿名用户

首先,将文件名存储在变量中并对其进行修剪。

$filename=trim($_文件['data']['name'])

然后使用字符串替换函数将空白替换为_(下划线)。

$filename=str_replace(' ',' _',$filename);

现在你得到的文件名将是空白字符串。

希望这能帮到你。