PHP - 允许的内存大小为 33554432 字节耗尽(尝试分配 12864 字节)


PHP - Allowed memory size of 33554432 bytes exhausted (tried to allocate 12864 bytes)

当我尝试上传 3,424KB 的文件并收到此错误时出现此错误

Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 12864 bytes)

但是当我尝试上传一个 4,891KB 的文件时,它很好,为什么会这样?

此外,我还更新了我的php5.ini文件,权限很好,一切都很好。

任何提示都会很棒,谢谢!

J

这是发生错误的代码行:

 $image = imagecreatefromjpeg($source); 

gd 库在内存中完全解压缩.jpg文件。因此,只有像素大小很重要,而上传的文件有多大并不重要。

你需要稍微提高你的memory_limit

提示

A. GD 失败,因为图像未压缩。

B. 用户memory_limit增加内存

C.使用Imagick它是内存效率高的

D. 将图像大小调整为可管理的大小

try 
{
    $img = new Imagick ( $imageLarge );
    $img->thumbnailImage ( 500, 500, TRUE );
    $img->writeImage ( $imageCute );
} 
catch ( Exception $e ) 
{
    echo 'Caught exception: ', $e->getMessage (), "'n";
}