如何禁用消息"无法访问文件"在PHP邮件?

时间:2015-05-05 21:08:11

标签: php email phpmailer email-attachments

我正在使用PHPMailer从具有多个附件的表单发送邮件。 这是表格的一部分:

 Attachment:<br />
<input type="file" name="attach1" id="attach1" />
<input type="file" name="attach2" id="attach2" />
<input type="file" name="attach3" id="attach3" />

当用户只附加1或2个文件时,我在email.php中添加了一些条件:

if(!empty($_FILES['attach1'] ))
{
$mail->AddAttachment($_FILES['attach1']['tmp_name']); // bijlage 1
}
if(!empty($_FILES['attach2']))
{
$mail->AddAttachment($_FILES['attach2']['tmp_name']); // bijlage 2
}
if(!empty($_FILES['attach3']))
{
$mail->AddAttachment($_FILES['attach3']['tmp_name']); // bijlage 3
}

但我仍然收到消息&#34;无法访问文件&#34;在空输入字段上。 即使有此消息,附件也会正确发送到电子邮件地址。但是当我只使用1个或2个附件时,我想摆脱它。

2 个答案:

答案 0 :(得分:1)

好的。这一行:

owner

不等于if(!empty($_FILES['attach3'])).. false中的数组不为空:它在$_FILES['attach3']中有一个错误代码eq 4(UPLOAD_ERR_NO_FILE)和另一个字段)当你只发送1和2个附件=&gt;在第三种情况下,您会看到$_FILES['attach3']['error']的消息。您需要将支票更改为:

"could not access file"

答案 1 :(得分:1)

你做错了 - 你应该在访问$ _FILES中的文件之前使用move_uploaded_file,按照the docsthe example code provided with PHPMailer