PHPMailer - 仅发送第一个附件

发布于 2024-12-12 03:42:40 字数 466 浏览 0 评论 0 原文

我添加附件如下:

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 中的 0 应替换为 7 => count($this->attachment) 但这没有帮助。你能帮我解决这个问题吗? TIA

I am adding attachments as follows:

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"]);
    }
}

Files are uploaded on server properly, but only first attachment is attached to the email. For second and third attachment I get error: Could not access file: upload/. I have have found that line 7 => 0 in class.phpmailer.php should be replaced with 7 => count($this->attachment) but it did not help. Can you help me with this issue? TIA

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

抱猫软卧 2024-12-19 03:42:40

如果您收到错误“无法访问文件: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, use print_r( $_FILES ); to see all the values in this array.

I suspect file_exists would return true even though the file names are blank, because file_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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文