<?php 
/** 
 * PHPMailer multiple files upload and send example 
 */ 
$msg = ''; 
if (array_key_exists('userfile', $_FILES)) { 
 
    // Create a message 
    // This should be somewhere in your include_path 
    require '../PHPMailerAutoload.php'; 
    $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; $ct < count($_FILES['userfile']['tmp_name']); $ct++) { 
        $uploadfile = tempnam(sys_get_temp_dir(), sha1($_FILES['userfile']['name'][$ct])); 
        $filename = $_FILES['userfile']['name'][$ct]; 
        if (move_uploaded_file($_FILES['userfile']['tmp_name'][$ct], $uploadfile)) { 
            $mail->addAttachment($uploadfile, $filename); 
        } else { 
            $msg .= 'Failed to move file to ' . $uploadfile; 
        } 
    } 
    if (!$mail->send()) { 
        $msg .= "Mailer Error: " . $mail->ErrorInfo; 
    } else { 
        $msg .= "Message sent!"; 
    } 
} 
?> 
<!DOCTYPE html> 
<html> 
<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 $msg; 
} ?> 
</body> 
</html> 
 
 |