PHPMailer - 仅发送第一个附件

时间:2011-10-26 09:20:00

标签: php 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/。我发现7 => 0中的行class.phpmailer.php应该替换为7 => count($this->attachment),但它没有帮助。你能帮我解决这个问题吗? TIA

1 个答案:

答案 0 :(得分: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告诉您“upload /”文件夹存在)。

编辑:还有一点需要注意的是,如果您使用的是PHP 5.2.12或更高版本,请检查INI设置中的max_file_uploads是否阻止您上传超过一个档案。