簡體   English   中英

在 php 中發送超過 2mb 的文件作為附件時,Memory 大小耗盡問題

[英]Memory size exhausted issue when sending more than 2mb file as attachment in php

我正在使用 PHPMailer 版本 6.* 和 PHP 7。當我附加一個超過 2 mb 的文件並嘗試發送 email 時,它給出了以下錯誤(在我使用 PHP5 的較低版本的 PHPMailer 之前,它正在工作在這種情況下很好。)

PHP Fatal error: Allowed memory size of 20971520 bytes exhausted (tried to allocate 18840168 bytes) in /var/www/html/email/classes/PHPMailer/PHPMailer.php on line 3027

我在 php.ini 中增加了 memory 限制和執行時間,但問題仍然存在。

在 PHPMailer 中編碼附件確實很耗內存,主要是因為它保存了整個附件和 memory 中內容的逐行數組。 理想情況下,這將轉換為使用生成器(memory 效率更高),但這必須等待下一次 BC 中斷。

同時,進一步增加您的 memory 分配 - 默認設置為 64M 或 128M,而不是您給它的 20M,這並不罕見。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM