2011-10-26 41 views
0

我添加附件如下:PHPMailer的 - 只有第一個附件發送

for ($i = 0; $i <= 2; $i++) 
{ 
    if(file_exists($dir . $_FILES["file".$i]["tmp_name"])){ 

     $mail->AddAttachment($dir . $_FILES["file".$i]["tmp_name"],$_FILES["file".$i]["name"]); 
    } 
} 

文件正確的服務器上載,但只有第一個連接附件的電子郵件。對於第二個和第三個附件,我得到錯誤:Could not access file: upload/。我已經發現在class.phpmailer.php7 => 0應替換爲7 => count($this->attachment),但它沒有幫助。你能幫我解決這個問題嗎? TIA

+0

這可能是文件權限問題嗎? – EdoDodo

+0

所有文件具有相同的權限,但僅附加第一個文件。所以我認爲還有一個問題。 – mkas

回答

0

如果您收到一個錯誤"Could not access file: upload/",這表明$_FILES["file1"]["tmp_name"]$_FILES["file2"]["tmp_name"]均爲空/空,並且不包含任何值(否則它會說"Could not access file: upload/foo.gif")。

echo將這些值輸出到屏幕上,看看它們是否真的存在。更好的是,使用print_r($_FILES);來查看此數組中的所有值。

我懷疑file_exists將返回true,即使文件名是空白的,因爲file_exists也適用於文件夾(即file_exists告訴你「上傳/」文件夾中存在)。

編輯:的另一件事更何況,如果你使用PHP 5.2.12或更好,檢查max_file_uploads在您的INI設置沒有阻止您上傳多個文件。

+0

好的,但是,您將如何解釋事實,第一個文件是否正確連接。我仍然不明白爲什麼它會這樣。 – mkas

+0

@mkas你在'$ _FILES' var上完成了print_r嗎?你看到了什麼?那裏的其他文件的文件名是?您是否檢查max_file_uploads是否允許您一次上傳超過1個文件? –