Renommer le file téléchargé (php)

J'essaie de renommer un file que je télécharge.

Je vais download un file xml ou pdf, et je le souhaite dans un dossier appelé "files / orderid /" et le nom de file devrait également être commandé .extension

Le file se télécharge bien et l'identifiant de dossier créé avec le nom correct, mais toutes les façons dont j'ai essayé de le renommer échouent.

Voici mon code.

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

    Renommez le file ci-dessous

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

    Et alors

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

    Vous définissez le file cible comme le nom du file. Vous devez définir un nom différent.

    Essaye ça:

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

    Merci mec, tout a aidé.

    Ma solution était de créer une variable avec l'extension, puis de l'utiliser à travers le file.

     //Check file extension $path = $_FILES["fileToUpload"]["name"]; $ext = pathinfo($path, PATHINFO_EXTENSION); // Vérifiez l'extension du file //Check file extension $path = $_FILES["fileToUpload"]["name"]; $ext = pathinfo($path, PATHINFO_EXTENSION); $ path = $ _FILES ["fileToUpload"] ["nom"]; //Check file extension $path = $_FILES["fileToUpload"]["name"]; $ext = pathinfo($path, PATHINFO_EXTENSION); 

    et alors

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