我正在添加如下附件:
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
答案 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是否阻止您上传超过一个档案。