Загрузка файла на сайт
Когда требуется загрузить файл на сервер, используется процедура, называемая "upload file".
Для того, чтобы реализовать данную процедуру, необходимо использовать форму HTML, которая имеет атрибут enctype="multipart/form-data". Таким образом, браузер поймет, что в форме будет присутствовать элемент для загрузки файла и сможет переслать его на сервер.
Пример HTML-кода для формы загрузки файла:
html
Затем, на сервере, обработка файла будет осуществляться при помощи PHP (или другого языка программирования). Примерный код для загрузки файла на сервер в PHP:
php
$target_dir = "uploads/"; // путь, куда будет сохранен файл
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); // полный путь до сохраняемого файла
$uploadOk = 1; // флаг для проверки успешности загрузки файла
// Проверяем, является ли файл реальным файлом или фальшивкой
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;
}
}
// Проверяем, существует ли файл уже на сервере
if (file_exists($target_file)) {
echo "Sorry, file already exists.";
$uploadOk = 0;
}
// Проверяем размер файла
if ($_FILES["fileToUpload"]["size"] > 500000) {
echo "Sorry, your file is too large.";
$uploadOk = 0;
}
// Ограничиваем допустимые типы файлов
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
$uploadOk = 0;
}
// Закачиваем файл, если все проверки успешны
if ($uploadOk == 0) {
echo "Sorry, your file was not uploaded.";
} 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.";
}
}
Здесь осуществляется проверка на корректность загружаемого файла (реальный или подделка, не превышает ли файл допустимый размер, имеет ли он допустимый формат и так далее). После проверки файла происходит сохранение его на сервере.
Важно отметить, что для корректной работы загрузки файлов на сервер для PHP изначально должны быть заданы следующие параметры в php.ini:
file_uploads = On
upload_max_filesize = указать необходимый максимальный размер файла в байтах
post_max_size = указать необходимый максимальный размер данных POST в байтах
В случае если один из этих параметров не задан или установлен неправильно, в процессе загрузки файлов могут возникать ошибки.