send_multiple_file_upload.phps 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?php
  2. /**
  3. * PHPMailer multiple files upload and send example
  4. */
  5. $msg = '';
  6. if (array_key_exists('userfile', $_FILES)) {
  7. // Create a message
  8. // This should be somewhere in your include_path
  9. require '../PHPMailerAutoload.php';
  10. $mail = new PHPMailer;
  11. $mail->setFrom('from@example.com', 'First Last');
  12. $mail->addAddress('whoto@example.com', 'John Doe');
  13. $mail->Subject = 'PHPMailer file sender';
  14. $mail->msgHTML('My message body');
  15. //Attach multiple files one by one
  16. for ($ct = 0; $ct < count($_FILES['userfile']['tmp_name']); $ct++) {
  17. $uploadfile = tempnam(sys_get_temp_dir(), sha1($_FILES['userfile']['name'][$ct]));
  18. $filename = $_FILES['userfile']['name'][$ct];
  19. if (move_uploaded_file($_FILES['userfile']['tmp_name'][$ct], $uploadfile)) {
  20. $mail->addAttachment($uploadfile, $filename);
  21. } else {
  22. $msg .= 'Failed to move file to ' . $uploadfile;
  23. }
  24. }
  25. if (!$mail->send()) {
  26. $msg .= "Mailer Error: " . $mail->ErrorInfo;
  27. } else {
  28. $msg .= "Message sent!";
  29. }
  30. }
  31. ?>
  32. <!DOCTYPE html>
  33. <html>
  34. <head>
  35. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  36. <title>PHPMailer Upload</title>
  37. </head>
  38. <body>
  39. <?php if (empty($msg)) { ?>
  40. <form method="post" enctype="multipart/form-data">
  41. <input type="hidden" name="MAX_FILE_SIZE" value="100000">
  42. Select one or more files:
  43. <input name="userfile[]" type="file" multiple="multiple">
  44. <input type="submit" value="Send Files">
  45. </form>
  46. <?php } else {
  47. echo $msg;
  48. } ?>
  49. </body>
  50. </html>