【问题标题】:php how to change file name when being uploaded [duplicate]php如何在上传时更改文件名[重复]
【发布时间】:2018-07-01 11:37:14
【问题描述】:

我有这个代码

<?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>

' ; } ?>

我有一个问题 - 它可以工作,将文件上传到服务器,但如果文件名中断,我无法下载它。例如,我想上传“我的薪水 únor.pdf”,但服务器一直在寻找文件“我的”。有没有办法修改此代码以将文件名中的中断更改为“_”?此外,我希望服务器使用 utf-8 字母(因为服务器将文件名更改为愚蠢的名称,例如 u?nor)所以如果也有这样的选项,那就太好了。 (或者只是让 php 更改文件名 inty "my_salary_unor" 谢谢大家的帮助广告建议。

【问题讨论】:

  • 欢迎来到 Stack Overflow!请不要破坏您的帖子。通过在 Stack Exchange 网络上发布,您已授予 SE 分发该内容的不可撤销的权利(在 CC BY-SA 3.0 license 下)。根据 SE 政策,任何破坏行为都将被撤销。

标签: php html web


【解决方案1】:

首先,将你的文件名存储在一个变量中并修剪它。

$filename = trim($_FILES['data']['name']);

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

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

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

希望对你有帮助。

【讨论】:

  • 我应该把这个放在哪一行?
  • 在move_uploaded_file 之前。粘贴此代码并替换 move_uploaded_file 如下
  • move_uploaded_file($_FILES['data']['tmp_name'], $uploadDir . $filename
  • 非常感谢您,先生,工作正常。
  • 不客气。如果您觉得我的回答值得解决您的问题,请点击我的回答旁边的灰色勾号图标接受。
猜你喜欢
  • 1970-01-01
  • 2016-02-29
  • 1970-01-01
  • 2013-03-12
  • 2020-08-29
  • 1970-01-01
  • 2011-06-09
  • 2017-08-29
  • 2013-11-07
相关资源
最近更新 更多