Как сохранить изображение, полученное из формы, с помощью PHP?

Как исправить код для извлечения изображения из формы?
  • 29 июля 2024 г. 7:33
Ответы на вопрос 2
Для сохранения изображения, полученного из формы, с помощью PHP, необходимо использовать функцию move_uploaded_file(), которая перемещает загруженный файл в указанное место на сервере. 

Пример кода для сохранения изображения из формы:

```php
if(isset($_FILES['image'])){
    $file_name = $_FILES['image']['name'];
    $file_tmp = $_FILES['image']['tmp_name'];
    $file_destination = "uploads/" . $file_name;
    
    move_uploaded_file($file_tmp, $file_destination);
    
    echo "Изображение успешно сохранено.";
}
```

Чтобы исправить код для извлечения изображения из формы, необходимо убедиться, что в форме для загрузки изображения присутствует атрибут enctype="multipart/form-data". 

Пример формы для загрузки изображения:

```html
<form action="upload.php" method="POST" enctype="multipart/form-data">
    <input type="file" name="image">
    <input type="submit" value="Upload Image">
</form>
```

Теперь можно использовать приведенный выше код для сохранения изображения в вашем PHP скрипте.
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $upload_dir = '/var/www/uploads/'; // Директория для сохранения загруженных файлов

    // Обработка основного изображения
    if (isset($_FILES['img']) && $_FILES['img']['error'] == UPLOAD_ERR_OK) {
        $tmp_name = $_FILES['img']['tmp_name'];
        $name = basename($_FILES['img']['name']);
        $img_path = $upload_dir . $name;
        
        if (move_uploaded_file($tmp_name, $img_path)) {
            echo "Файл успешно загружен: $img_path";
        } else {
            echo "Ошибка при загрузке файла.";
        }
    }

    // Обработка изображения для карточки
    if (isset($_FILES['card_img']) && $_FILES['card_img']['error'] == UPLOAD_ERR_OK) {
        $tmp_name = $_FILES['card_img']['tmp_name'];
        $name = basename($_FILES['card_img']['name']);
        $card_img_path = $upload_dir . $name;
        
        if (move_uploaded_file($tmp_name, $card_img_path)) {
            echo "Файл для карточки успешно загружен: $card_img_path";
        } else {
            echo "Ошибка при загрузке файла для карточки.";
        }
    }
}
?>

Убедитесь, что форма имеет атрибут enctype="multipart/form-data":
<form method="POST" enctype="multipart/form-data">
    <!-- Ваши поля формы -->
</form>
Похожие вопросы