Как можно модифицировать код на PHP с использованием библиотеки PhpMailer, чтобы реализовать отправку нескольких файлов, а не только последнего выбранного? В настоящее время скрипт отправляет только один последний файл из загруженных.
Для отправки нескольких файлов с помощью PHP можно использовать класс PHPMailer и его метод addAttachment(). Пример кода для отправки нескольких файлов с использованием PhpMailer: ```php <?php require 'vendor/autoload.php'; // подключаем файл автозагрузки библиотеки PhpMailer // Создаем экземпляр класса PHPMailer $mail = new PHPMailer(); // Устанавливаем настройки для отправки почты $mail->isSMTP(); $mail->Host = 'smtp.example.com'; $mail->SMTPAuth = true; $mail->Username = '[email protected]'; $mail->Password = 'yourpassword'; $mail->Port = 587; $mail->SMTPSecure = 'tls'; // Устанавливаем адрес отправителя и получателя $mail -> setFrom('[email protected]', 'Your Name'); $mail -> addAddress('[email protected]', 'Recipient Name'); // Добавляем файлы для отправки $mail->addAttachment('path/to/file1.pdf'); $mail->addAttachment('path/to/file2.jpg'); $mail->addAttachment('path/to/file3.docx'); // Устанавливаем тему письма и текст $mail->Subject = 'Subject'; $mail->Body = 'Message body'; // Отправляем письмо if(!$mail->send()) { echo 'Error: ' . $mail->ErrorInfo; } else { echo 'Message sent!'; } ?> ``` Этот код добавляет несколько файлов для отправки с помощью метода addAttachment() и отправляет их все вместе. Если в вашем текущем скрипте используется только один файл для отправки, вам нужно будет изменить соответствующую часть своего кода на что-то подобное: ```php // Добавляем файл для отправки $mail->addAttachment('path/to/file1.pdf'); ``` Замените эту часть кода на следующий блок, чтобы отправлять несколько файлов: ```php // Добавляем файлы для отправки $mail->addAttachment('path/to/file1.pdf'); $mail->addAttachment('path/to/file2.jpg'); $mail->addAttachment('path/to/file3.docx'); ``` Это позволит вашему скрипту отправлять несколько файлов с помощью PhpMailer.
Форма должна накидывать файлы в name="uploaded_file[]".
А сервер должен итерировать так:
if (isset($_FILES["uploaded_file"]) && !empty($_FILES["uploaded_file"]["name"]) && is_array($_FILES["uploaded_file"]["name"]) && count($_FILES["uploaded_file"]["name"]) > 0) { for($i = 0; $i < count($_FILES["uploaded_file"]["name"]); $i++) { $file_name = $_FILES['uploaded_file']['name'][$i]; $file_size = $_FILES['uploaded_file']['size'][$i]; $file_tmp = $_FILES['uploaded_file']['tmp_name'][$i]; $file_type = $_FILES['uploaded_file']['type'][$i]; $file_ext = strtolower(end(explode('.', $_FILES['uploaded_file']['name'][$i]))); ... } }