来自phpmailer类的致命错误

时间:2012-04-03 11:02:26

标签: php upload phpmailer

我制作了一个发送带有多个附件的电子邮件的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

任何可以指导我的机构。

2 个答案:

答案 0 :(得分:1)

您可能希望增加PHP内存限制。如果您正在开发机器上工作,则可以搜索php.ini文件并修改memory_limit(通常默认为16M)。改为f.e. 128M并重新启动您的网络服务器。

如果要查看更改,可以使用以下行显示当前正在使用的配置:

<?php phpinfo(); ?>

答案 1 :(得分:0)

让PHP仅使用以下PHP代码在此脚本上使用更多内存:

ini_set(‘memory_limit’,’64M’);