Path: blob/master/PHPMailer/examples/send_multiple_file_upload.phps
738 views
<?php /** * PHPMailer multiple files upload and send example */ //Import the PHPMailer class into the global namespace use PHPMailer\PHPMailer\PHPMailer; $msg = ''; if (array_key_exists('userfile', $_FILES)) { require '../vendor/autoload.php'; // Create a message $mail = new PHPMailer; $mail->setFrom('[email protected]', 'First Last'); $mail->addAddress('[email protected]', 'John Doe'); $mail->Subject = 'PHPMailer file sender'; $mail->Body = 'My message body'; //Attach multiple files one by one for ($ct = 0, $ctMax = count($_FILES['userfile']['tmp_name']); $ct < $ctMax; $ct++) { $uploadfile = tempnam(sys_get_temp_dir(), hash('sha256', $_FILES['userfile']['name'][$ct])); $filename = $_FILES['userfile']['name'][$ct]; if (move_uploaded_file($_FILES['userfile']['tmp_name'][$ct], $uploadfile)) { if (!$mail->addAttachment($uploadfile, $filename)) { $msg .= 'Failed to attach file ' . $filename; } } else { $msg .= 'Failed to move file to ' . $uploadfile; } } if (!$mail->send()) { $msg .= 'Mailer Error: '. $mail->ErrorInfo; } else { $msg .= 'Message sent!'; } } ?> <!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>PHPMailer Upload</title> </head> <body> <?php if (empty($msg)) { ?> <form method="post" enctype="multipart/form-data"> <input type="hidden" name="MAX_FILE_SIZE" value="100000"> Select one or more files: <input name="userfile[]" type="file" multiple="multiple"> <input type="submit" value="Send Files"> </form> <?php } else { echo htmlspecialchars($msg); } ?> </body> </html>