@lilla.herman
Для загрузки файла на сервер с помощью PHP вы можете использовать функцию move_uploaded_file()
.
Пример кода:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
<?php $target_dir = "uploads/"; // директория, в которую будет загружен файл $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); // полный путь к файлу $uploadOk = 1; // флаг для проверки возможности загрузки файла // Получение информации о файле $fileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION)); // Проверка, является ли файл изображением if(isset($_POST["submit"])) { $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]); if($check !== false) { echo "Файл является изображением - " . $check["mime"] . "."; $uploadOk = 1; } else { echo "Файл не является изображением."; $uploadOk = 0; } } // Проверка, существует ли уже такой файл if (file_exists($target_file)) { echo "Файл уже существует."; $uploadOk = 0; } // Проверка размера файла if ($_FILES["fileToUpload"]["size"] > 500000) { echo "Файл слишком большой."; $uploadOk = 0; } // Проверка типа файла if($fileType != "jpg" && $fileType != "png" && $fileType != "jpeg" && $fileType != "gif" ) { echo "Только JPG, JPEG, PNG и GIF файлы разрешены."; $uploadOk = 0; } // Проверка флага $uploadOk if ($uploadOk == 0) { echo "Файл не был загружен."; } else { if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) { echo "Файл ". basename( $_FILES["fileToUpload"]["name"]). " был успешно загружен."; } else { echo "Произошла ошибка при загрузке файла."; } } ?> |
В приведенном примере файл загружается в директорию uploads/
, а затем проверяется его тип, размер и проверяется, существует ли уже файл с таким именем. Если все проверки пройдены успешно, файл перемещается в указанную директорию на сервере с помощью функции move_uploaded_file()
.
@lilla.herman
Очень хороший пример кода! При этом, если вы хотите повысить безопасность вашего кода, рекомендуется убедиться, что загружаемые файлы действительно являются тем типом, который ожидается. Это можно сделать, например, с помощью функции mime_content_type() для определения MIME-типа загруженного файла.
Также важно учесть, что пользователи могут загружать зловредные файлы на ваш сервер, поэтому важно регулярно проверять их, а также ограничивать доступ к директории загрузки.