Рубрики

Как выбрать и загрузить несколько файлов с HTML и PHP, используя HTTP POST?

В этой статье мы рассмотрим, как загружать несколько файлов с помощью HTML и PHP. Загрузка нескольких изображений позволяет пользователю выбрать несколько файлов одновременно и загрузить все файлы на сервер.

index.html Создайте простую страницу HTML для выбора нескольких файлов и отправьте ее для загрузки файлов на сервер. Здесь файл HTML содержит форму для выбора и загрузки файлов методом POST.

<!DOCTYPE html>

<html>

  

<head>

    <title>

        Select and upload multiple

        files to the server

    </title>

</head>

  

<body>

  

    <! - multipart / form-data гарантирует, что форма

    данные будут закодированы как данные MIME ->

    <form action="file_upload.php" method="POST"

            enctype="multipart/form-data">

  

        <h2>Upload Files</h2>

          

        <p>

            Select files to upload: 

              

            <! - названия полей ввода собираются

                использоваться в нашем PHP-скрипте ->

            <input type="file" name="files[]" multiple>

              

            <br><br>

              

            <input type="submit" name="submit" value="Upload" >

        </p>

    </form>

</body>

  

</html>                    

file_upload.php Сценарий file_upload.php будет обрабатывать загрузку файла и отображать статус загрузки.

<?php 

  
// Проверяем, была ли отправлена форма

if(isset($_POST['submit'])) {

  

    // Настройка каталога загрузки и разрешенных типов файлов

    $upload_dir = 'uploads'.DIRECTORY_SEPARATOR;

    $allowed_types = array('jpg', 'png', 'jpeg', 'gif');

      

    // Определяем максимальный размер для файлов, т.е. 2 МБ

    $maxsize = 2 * 1024 * 1024; 

  

    // Проверяет, отправил ли пользователь пустую форму

    if(!empty(array_filter($_FILES['files']['name']))) {

  

        // Перебираем каждый файл в массиве files []

        foreach ($_FILES['files']['tmp_name'] as $key => $value) {

              

            $file_tmpname = $_FILES['files']['tmp_name'][$key];

            $file_name = $_FILES['files']['name'][$key];

            $file_size = $_FILES['files']['size'][$key];

            $file_ext = pathinfo($file_name, PATHINFO_EXTENSION);

  

            // Установить путь загрузки файла

            $filepath = $upload_dir.$file_name;

  

            // Проверяем, разрешен ли тип файла

            if(in_array(strtolower($file_ext), $allowed_types)) {

  

                // Проверка размера файла - не более 2 МБ

                if ($file_size > $maxsize)         

                    echo "Error: File size is larger than the allowed limit."

  

                // Если файл с именем уже существует, добавить время в

                // перед именем файла, чтобы избежать перезаписи файла

                if(file_exists($filepath)) {

                    $filepath = $upload_dir.time().$file_name;

                      

                    if( move_uploaded_file($file_tmpname, $filepath)) {

                        echo "{$file_name} successfully uploaded <br />";

                    

                    else {                     

                        echo "Error uploading {$file_name} <br />"

                    }

                }

                else {

                  

                    if( move_uploaded_file($file_tmpname, $filepath)) {

                        echo "{$file_name} successfully uploaded <br />";

                    }

                    else {                     

                        echo "Error uploading {$file_name} <br />"

                    }

                }

            }

            else {

                  

                // Если расширение файла недействительно

                echo "Error uploading {$file_name} "

                echo "({$file_ext} file type is not allowed)<br / >";

            

        }

    

    else {

          

        // Если файлы не выбраны

        echo "No files selected.";

    }

  
?>

Выход:

  • Перед загрузкой файла:
  • После загрузки файла:

Рекомендуемые посты:

Как выбрать и загрузить несколько файлов с HTML и PHP, используя HTTP POST?

0.00 (0%) 0 votes