#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"
. Это должно решить проблему.