0

我想分享一些在路上发生在我身上的事情。

我上传了一张图片到我的网站,然后我创建了一些拇指。那些从相对较大的文件(大约 5mb 的 jpeg 图像)中自动裁剪的拇指,我这样做了很多次。突然,当上传一个大文件并从裁剪的图像(不是原始图像)中进行拇指操作时,我发现了这个错误:

Fatal error:  Allowed memory size of 134217728 bytes exhausted (tried to allocate 22464 bytes)

我怎么会耗尽 128Mb 的内存?

4

2 回答 2

1

我也遇到过这个问题

增加以下变量,使您的页面执行不会停止:

max_input_time
memory_limit
max_execution_time

干杯

于 2012-09-04T12:25:30.460 回答
1

主要问题是我使用的内存比可用内存多。当然,首先要检查的是我上传的文件是否正确,而不是太大。好的,3Mb。那么,问题出在哪里?

通常,这种错误伴随着它完全耗尽可用内存的确切行。就我而言,在这个里面:

$orig = imagecreatefromjpeg($fullPathFilename);

因此,在将新图像分配到内存时,服务器崩溃了。然后,我想到了:我没有释放任何以前的分配调用!如前所述,我碰巧从多种尺寸的图像中生成了很多拇指。愚蠢的我,我没有释放任何这些。因此,如果您在裁剪/调整大小/更改多个图像时碰巧看到此错误,请在代码中检查此调用:

imagedestroy($orig);

所以,总结一下。

如果您没有找到该imagedestroy()功能,那么您可能已经找到了您的问题!

于 2012-09-04T12:05:39.640 回答