我制作了一个发送带有多个附件的电子邮件的php页面。 我用来附加多个附件并检查附件大小的循环是,
foreach(array_keys($_FILES['attach']['name']) as $key)
{
$filesize = $_FILES['attach']['size'][$key];
$extention = pathinfo ($_FILES['attach']['name'][$key] ,PATHINFO_EXTENSION
);
$name=$_FILES['attach']['name'][$key];
$data=($_FILES['attach']['tmp_name']);
$totalsize = $totalsize + $filesize;
if($totalsize > 10000000) //10mb10000000
{$err="<font color=#990000 size=1>File exceeded maximum allowed limit of 10
Mb</font>";}
else{
$source = $_FILES['attach']['tmp_name'][$key];
$filename = $_FILES['attach']['name'][$key];
$mail->AddAttachment($source, $filename);
}
}//end Foreach loop
但是当我尝试附加一个大文件时,我从phpmailer类中得到了这个错误。
Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate
7355049 bytes) in /var/www/dev01/maiarn/Email/class.phpmailer.php on line 1677
任何可以指导我的机构。
答案 0 :(得分:1)
您可能希望增加PHP内存限制。如果您正在开发机器上工作,则可以搜索php.ini文件并修改memory_limit(通常默认为16M)。改为f.e. 128M并重新启动您的网络服务器。
如果要查看更改,可以使用以下行显示当前正在使用的配置:
<?php phpinfo(); ?>
答案 1 :(得分:0)
让PHP仅使用以下PHP代码在此脚本上使用更多内存:
ini_set(‘memory_limit’,’64M’);