Переименовать загруженный файл (php)

Я пытаюсь переименовать файл, который я загружаю.

Я буду загружать файл XML или PDF, и я хочу, чтобы он находился в папке с именем «files /номер заказа/ «и имя файла также должно быть номер заказа.расширение

Файл загружается нормально, и идентификатор папки создан с правильным именем, но все способы, которые я пытался переименовать, не удаются.

Ниже мой код.

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

-1

Решение

Переименуйте файл, как показано ниже

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

А потом

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

Другие решения

Вы устанавливаете целевой файл, чтобы быть именем файла. Вы должны установить другое имя.

Попробуй это:

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

Спасибо, парень, все помогло.

Моим решением было создать переменную с расширением, а затем использовать ее в файле.

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

а потом

move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], "files/$id/$id.$ext"
0
По вопросам рекламы [email protected]