Загрузка файлов на сервер с помощью PHP: Подробное руководство

1. Создание HTML-формы

HTML-форма будет использоваться для выбора файла и отправки его на сервер. Вот пример upload_form.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Загрузка файла</title>
</head>
<body>
    <form action="upload.php" method="post" enctype="multipart/form-data">
        <label for="file">Выберите файл:</label>
        <input type="file" name="file" id="file">
        <button type="submit" name="submit">Загрузить</button>
    </form>
</body>
</html>

2. Настройка PHP-скрипта

PHP-скрипт upload.php будет обрабатывать загруженный файл. В этом примере мы добавим проверки для удостоверениясь в безопасности загружаемого файла, таких как проверка типа и размера файла:

<?php
if (isset($_POST['submit'])) {
    $targetDirectory = "uploads/";
    $targetFile = $targetDirectory . basename($_FILES["file"]["name"]);
    $uploadOk = 1;
    $imageFileType = strtolower(pathinfo($targetFile, 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($targetFile)) {
        echo "Извините, файл уже существует.";
        $uploadOk = 0;
    }

    // Проверка размера файла
    if ($_FILES["file"]["size"] > 500000) {
        echo "Извините, ваш файл слишком большой.";
        $uploadOk = 0;
    }

    // Разрешенные типы файлов
    $allowedExtensions = array("jpg", "jpeg", "png", "gif");
    if (!in_array($imageFileType, $allowedExtensions)) {
        echo "Извините, разрешены только файлы JPG, JPEG, PNG и GIF.";
        $uploadOk = 0;
    }

    // Проверка $uploadOk перед загрузкой
    if ($uploadOk == 0) {
        echo "Извините, ваш файл не был загружен.";
    } else {
        // Загрузка файла
        if (move_uploaded_file($_FILES["file"]["tmp_name"], $targetFile)) {
            echo "Файл " . basename($_FILES["file"]["name"]) . " был успешно загружен.";
        } else {
            echo "Произошла ошибка при загрузке файла.";
        }
    }
}
?>

3. Проверка прав доступа

Удостоверьтесь, что у вас есть права на запись в папку uploads, чтобы PHP могла сохранять файлы в этом месте.

chmod -R 755 uploads/

Теперь, когда вы создали HTML-форму и PHP-скрипт, вы можете открыть страницу upload_form.html в веб-браузере, выбрать файл и отправить его на сервер. PHP-скрипт обработает загруженный файл с учетом установленных проверок.

Загрузка файлов на сервер с использованием PHP - это всего лишь один из аспектов веб-разработки, но понимание этого процесса может быть весьма полезным при создании веб-приложений.

Комментарии

Коментарии отсутствуют, будьте первым(ой) кто напишет под этим постом!

Написать коментарий