【问题标题】:Rename uploaded file (php)重命名上传的文件(php)
【发布时间】:2016-02-28 04:36:22
【问题描述】:

我正在尝试重命名我正在上传的文件。

我将上传一个 xml 或 pdf 文件,我希望它位于一个名为“files/orderid/”的文件夹中,文件名也应该是 orderid.extension

文件上传正常,并且使用正确名称创建的文件夹 id,但我尝试重命名的所有方法都失败了。

下面是我的代码。

// include database connection
 include 'config/database.php';

// get passed parameter value, in this case, the record ID
 $id=isset($_GET['orderid']) ? $_GET['orderid'] : die('FEJL: Ordren kunne ikke findes.');

// page header
 $page_title="Upload pdf og/eller xml fil";
 include_once "layout_head.php";

 echo "Ordrenummeret er ";
 echo $id;
 echo "<br>";

 if($_POST){

mkdir("files/$id");
$target_dir = "files/$id/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);


// Check if file already exists
if (file_exists($target_file)) {
    echo "Filen eksisterer allerede.";
    $uploadOk = 0;
}


// Check file size
if ($_FILES["fileToUpload"]["size"] > 500000) {
    echo "Filen er for stor.";
    $uploadOk = 0;
}
// Allow certain file formats
if($imageFileType != "xml" && $imageFileType != "pdf") {
    echo "Kun xml og pdf filer kan uploades.";
    $uploadOk = 0;
}


// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
    echo "Filen blev ikke uploaded.";

// if everything is ok, try to upload file
} else {
    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
        echo "Filen ". basename( $_FILES["fileToUpload"]["name"]). " er uploaded.";
    } else {
        echo "Der skete en fejl ved upload, prøv igen.";
    }
}
}
?>

 <!DOCTYPE html>
 <html>
 <body>

 <form action="upload_files.php?orderid=<?php echo htmlspecialchars($id); ?>" method="post" enctype="multipart/form-data">
Vælg xml eller pdf fil:
<input type="file" name="fileToUpload" id="<?php echo htmlspecialchars($id); ?>">
<input type="submit" value="Upload fil" name="submit">
 </form>

 </body>
 </html>

【问题讨论】:

  • 编辑了描述,我将同时上传 xml 和 pdf 文件。
  • 这段代码中重命名文件名部分在哪里?

标签: php file-upload rename file-rename


【解决方案1】:

谢谢你,这一切都有帮助。

我的解决方案是使用扩展名创建一个变量,然后在整个文件中使用它。

//Check file extension
$path = $_FILES["fileToUpload"]["name"];
$ext = pathinfo($path, PATHINFO_EXTENSION);

然后

move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], "files/$id/$id.$ext"

【讨论】:

    【解决方案2】:

    重命名文件如下

    $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
    $target_file = $target_dir . $id . '.' . $imageFileType;
    

    然后

    move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file);
    

    【讨论】:

      【解决方案3】:

      您将目标文件设置为文件名。您应该设置一个不同的名称。

      试试这个:

      $target_dir = "files/$id/";
      $uploadOk = 1;
      $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
      $target_file = "{$target_dir}{$id}.{$imageFileType};
      

      【讨论】:

        猜你喜欢
        • 2021-10-25
        • 2012-05-04
        • 1970-01-01
        • 2019-06-10
        • 2014-01-15
        • 2013-09-07
        • 2020-08-29
        • 2013-09-21
        • 2013-04-29
        相关资源
        最近更新 更多