как изменить имя файла в php file upload

#php

#php

Вопрос:

Прямо сейчас я изучаю, как загрузить фотографию с помощью PHP. Я скопировал код из w3schools.com но я не могу догадаться, где мне следует изменить название фотографии. Этот код загружает фотографию с тем именем, которое у нее было раньше, но я хочу изменить его, так что где я должен его записать?

 <?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
    $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
    if($check !== false) {
        echo "File is an image - " . $check["mime"] . ".";
        $uploadOk = 1;
    } else {
        echo "File is not an image.";
        $uploadOk = 0;
    }
}
// Check if file already exists
if (file_exists($target_file)) {
    echo "Sorry, file already exists.";
    $uploadOk = 0;
}
// Check file size
if ($_FILES["fileToUpload"]["size"] > 500000) {
    echo "Sorry, your file is too large.";
    $uploadOk = 0;
}
// Allow certain file formats
if($imageFileType != "jpg" amp;amp; $imageFileType != "png" amp;amp; $imageFileType != "jpeg"
amp;amp; $imageFileType != "gif" ) {
    echo "Sorry, only JPG, JPEG, PNG amp; GIF files are allowed.";
    $uploadOk = 0;
}
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
    echo "Sorry, your file was not uploaded.";
// if everything is ok, try to upload file
} else {
    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
        echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";
    } else {
        echo "Sorry, there was an error uploading your file.";
    }
}
?>  

Комментарии:

1. Для успешного изучения любого языка необходимо понимать, как работают примеры, а не просто копировать, вставляя их вместе. Если бы вы поняли этот пример, вы бы поняли, что речь идет только об изменении одного значения переменной,

2. Взгляните на документацию, и у вас есть свой ответ: php.net/manual/de/function.move-uploaded-file.php

3. Я решил эту проблему несколько месяцев назад. Я переименовываю фотографии в соответствии с меткой времени, когда они были загружены. Сделал это так: $newfilename = round(microtime(true)) . ‘.’ . end($temp); move_uploaded_file($_FILES[«fileToUpload»][«tmp_name»], «некоторые / папки / возможно /» . $newurlname);

4. ребята, я не мог. например, если я напишу $target_file = $ target_dir . «имя» . «jpg»; выдает ошибку типа: «Извините, разрешены только файлы JPG, JPEG, PNG и GIF. Извините, ваш файл не был загружен. »

5. // Разрешить определенные форматы файлов, если ($imageFileType ! = «jpg» amp;amp; $imageFileType ! = «png» amp;amp; $imageFileType ! = «jpeg» amp;amp; $imageFileType ! = «gif» ) { echo «Извините, разрешены только файлы JPG, JPEG, PNG и GIF».; $uploadOk = 0; }

Ответ №1:

Вы меняете имя файла в этой строке:

 $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
  

Сделайте что-то вроде

 $target_file = $target_dir . "heyyyyy." . $imageFileType;
  

Комментарии:

1. $ target_file = $target_dir . «новое имя файла отображается здесь»;

2. именно то, что я сделал, но вам также нужно вставить расширение файла

3. У меня проблема с расширением файла. в случае:»$target_file = $ target_dir . «имя» . $imageFileType; он выдает мне: «Извините, разрешены только файлы JPG, JPEG, PNG и GIF. Извините, ваш файл не был загружен. »

4. Какое расширение у файла, который вы пытаетесь загрузить?

Ответ №2:

Чтобы убедиться, что расширение указано в нижнем регистре, замените:

 $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
  

С:

 $imageFileType = strtolower(pathinfo($original_file,PATHINFO_EXTENSION));
  

Ответ №3:

     <form action="" method="POST" enctype="multipart/form-data">
    <input type="file" name="fileToUpload" />
    <button type="submit">Upload</button>
    </form>
  

Вот файл для загрузки: name="fileToUpload" . Это должно решить проблему.