2013-07-31 63 views
0

我已經得到了我的腳本通過電子郵件發送一個文件,但我被要求作出,所以它可以接受兩個。附加兩個文件PHP

我的腳本到目前爲止看起來像。

// Obtain file upload vars 
$fileatt  = $_FILES['file1']['tmp_name']; 
$fileatt_type = $_FILES['file1']['type']; 
$fileatt_name = $_FILES['file1']['name']; 


if (is_uploaded_file($fileatt)) { 


    $file = fopen($fileatt,'rb'); 
    $data = fread($file,filesize($fileatt)); 
    fclose($file); 

    $semi_rand = md5(time()); 
    $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; 

    $headers .= "\nMIME-Version: 1.0\n" . 
       "Content-Type: multipart/mixed;\n" . 
       " boundary=\"{$mime_boundary}\""; 

    $message = "This is a multi-part message in MIME format.\n\n" . 
      "--{$mime_boundary}\n" . 
      "Content-Type: text/html; charset=\"iso-8859-1\"\n" . 
      "Content-Transfer-Encoding: 7bit\n\n" . 
      $message . "\n\n"; 


    $data = chunk_split(base64_encode($data)); 

    $message .= "--{$mime_boundary}\n" . 
       "Content-Type: {$fileatt_type};\n" . 
       " name=\"{$fileatt_name}\"\n" . 
       //"Content-Disposition: attachment;\n" . 
       //" filename=\"{$fileatt_name}\"\n" . 
       "Content-Transfer-Encoding: base64\n\n" . 
       $data . "\n\n" . 
       "--{$mime_boundary}--\n"; 

} 

我想能夠在頭部使用這些,它能夠通過。我已經嘗試修改腳本來這樣做,但我只能得到一個文件。

// Obtain file upload vars 
$fileatt2  = $_FILES['file2']['tmp_name']; 
$fileatt_type2 = $_FILES['file1']['type']; 
$fileatt_name2 = $_FILES['file1']['name']; 
+0

請嘗試發佈您的修改後的腳本 –

+0

您會發現使用預先建立的郵件庫而不是嘗試和手卷多部分附件等要容易得多。EG Swift郵件程序(http://swiftmailer.org/)或PHPMailer(http://phpmailer.codeworxtech.com/ ) – Anigel

回答

0

所以,你現在得到2個HTML

<input name="file1" type="file" /> 
<input name="file2" type="file" /> 

這裏輸入字段是您WOOPS

// Obtain file upload vars 
$fileatt2  = $_FILES['file2']['tmp_name']; 
$fileatt_type2 = $_FILES['file1']['type']; 
$fileatt_name2 = $_FILES['file1']['name']; 

更改所有3使用file2

// Obtain file upload vars 
$fileatt2  = $_FILES['file2']['tmp_name']; 
$fileatt_type2 = $_FILES['file2']['type']; 
$fileatt_name2 = $_FILES['file2']['name'];