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"]);
}
}
文件已正确上传到服务器上,但仅第一个附件附加到电子邮件中。对于第二个和第三个附件,我收到错误:无法访问文件:upload/
。我发现行 7 =>;
应替换为 class.phpmailer.php
中的 07 => count($this->attachment)
但这没有帮助。你能帮我解决这个问题吗? TIA
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您收到错误
“无法访问文件:upload/”
,则表明$_FILES["file1"]["tmp_name"]
和$_FILES["file2"]["tmp_name"]
都是空/空白,并且不包含任何值(否则会显示“无法访问文件:upload/foo.gif”
)。将这些值
回显
到屏幕上,看看它们是否确实存在。更好的是,使用 print_r( $_FILES ); 来查看此数组中的所有值。我怀疑即使文件名为空,
file_exists
也会返回true,因为file_exists
也适用于文件夹(即file_exists
告诉你“上传/”文件夹存在)。编辑:另一件事要提的是,如果您使用的是 PHP 5.2.12 或更高版本,请检查 max_file_uploads 不会阻止您上传多个文件。
If you're getting an error
"Could not access file: upload/"
, that suggests that$_FILES["file1"]["tmp_name"]
and$_FILES["file2"]["tmp_name"]
are both empty/blank, and contain no values (otherwise it would say"Could not access file: upload/foo.gif"
).echo
out these values to the screen and see if they're actually there. Better yet, useprint_r( $_FILES );
to see all the values in this array.I suspect
file_exists
would return true even though the file names are blank, becausefile_exists
also works on folders (i.e.file_exists
is telling you the "upload/" folder exists).EDIT: One other thing to mention, if you're using PHP 5.2.12 or better, check that max_file_uploads in your INI settings isn't preventing you from uploading more than one file.