我有一个表单,我正在使用 PHPMailer 将该表单中的数据发送到我的电子邮件。用户也可以发送附件,但我有一个问题:如何使 PHPMailer 拒绝大于 2Mb 的附件并仅允许 iamge 附件(不允许其他类型的文档)?
这是我使用 PHPMailer 来添加多个电子邮件附件的代码:
foreach(array_keys($_FILES['fileAttach']['name']) as $key) {
$source = $_FILES['fileAttach']['tmp_name'][$key];
$filename = $_FILES['fileAttach']['name'][$key];
$mail->AddAttachment($source, $filename);
}
您可以使用检查文件大小filesize()以及使用的类型mime_content_type().
结果代码可能如下所示:
$maxsize = 2 * 1024 * 1024; // 2 MB
$types = array('image/png', 'image/jpeg', 'image/gif'); // allowed mime-types
if(filesize($filename) < $maxsize && in_array(mime_content_type($filename),$types)){
$mail->AddAttachment($source, $filename);
}
EDIT:PHPMailer 没有内置的这些破解功能 - 正如您从源代码中看到的那样,它仅在添加附件时检查文件是否存在:
if ( !@is_file($path) ) {
throw new phpmailerException($this->Lang('file_access') . $path, self::STOP_CONTINUE);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)