Чтобы загрузить файл из формы и сохранить его в папке с именем "img" на сервере, вам нужно использовать HTML-форму для загрузки файла и язык серверного программирования, такой как PHP, для обработки загрузки. Вот пример того, как это можно сделать.
### Шаг 1: Создаем HTML-форму
Создайте файл с именем `upload.html` и добавьте следующий код:
```html
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Загрузка изображения</title>
</head>
<body>
<h2>Форма для загрузки изображения</h2>
<form action="upload.php" method="post" enctype="multipart/form-data">
<label for="file">Выберите файл для загрузки:</label>
<input type="file" name="file" id="file" required>
<br><br>
<input type="submit" value="Загрузить">
</form>
</body>
</html>
```
### Шаг 2: Обрабатываем загруженный файл на сервере
Создайте файл с именем `upload.php` и добавьте следующий код:
```php
<?php
// Папка для сохранения загруженных файлов
$target_dir = "img/";
// Создаем папку, если она не существует
if (!is_dir($target_dir)) {
mkdir($target_dir, 0755, true);
}
// Получаем информацию о загружаемом файле
$target_file = $target_dir . basename($_FILES["file"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file, PATHINFO_EXTENSION));
// Проверяем, является ли файл изображением
if (isset($_POST["submit"])) {
$check = getimagesize($_FILES["file"]["tmp_name"]);
if ($check !== false) {
echo "Файл является изображением - " . $check["mime"] . ".";
$uploadOk = 1;
} else {
echo "Файл не является изображением.";
$uploadOk = 0;
}
}
// Проверяем, существует ли файл
if (file_exists($target_file)) {
echo "Извините, файл уже существует.";
$uploadOk = 0;
}
// Ограничение по размеру файла (например, 5 МБ)
if ($_FILES["file"]["size"] > 5000000) {
echo "Извините, файл слишком велик.";
$uploadOk = 0;
}
// Разрешенные форматы файлов
if (!in_array($imageFileType, ['jpg', 'png', 'jpeg', 'gif'])) {
echo "Извините, только JPG, JPEG, PNG и GIF файлы разрешены.";
$uploadOk = 0;
}
// Если $uploadOk равен 0, значит, произошла ошибка, в противном случае загружаем файл
if ($uploadOk == 0) {
echo "Извините, файл не был загружен.";
} else {
if (move_uploaded_file($_FILES["file"]["tmp_name"], $target_file)) {
echo "Файл ". htmlspecialchars(basename($_FILES["file"]["name"])) . " был загружен.";
} else {
echo "Произошла ошибка при загрузке файла.";
}
}
?>
```
### Объяснение кода
1. **HTML-форма**: Создается форма для загрузки файла с методом POST и атрибутом `enctype='multipart/form-data'`, который необходим для загрузки файлов.
2. **PHP-скрипт**:
- Определяет директорию для сохранения загруженных файлов (`img/`).
- Проверяет, существует ли директория, и создает её, если нет.
- Проверяет, является ли загружаемый файл изображением и не превышает ли он допустимый размер.
- Проверяет, существует ли файл с таким же именем на сервере.
- Если проверки пройдены, файл загружается в указанную директорию.
### Запуск
1. Разместите оба файла (`upload.html` и `upload.php`) на вашем сервере.
2. Откройте `upload.html` в браузере и выберите изображение для загрузки.
3. Нажмите кнопку "Загрузить" и убедитесь, что файл успешно загружается в папку `img`.
Не забудьте проверить настройки вашего сервера и убедитесь, что у вас есть права на запись в папку `img`.