如何避免致命错误:允许的内存大小为83886080字节耗尽

时间:2012-10-06 14:57:57

标签: php

  

可能重复:
  Error: Allowed memory size of 67108864 bytes exhausted

我的网站上有一个(多个)文件上传表单,但它可以工作,但是如果我上传了太多文件(取决于文件大小,我猜)我得到了这个错误。我知道我可以编辑php.ini中的memory_limit属性,但是他们可以通过php释放内存吗?

我正在上传一些图片,然后将它们调整大小并裁剪为两张图片,然后保存在目录和数据库中。

由于

1 个答案:

答案 0 :(得分:1)

当不再需要图像时(例如,当它被复制到不同的图像中时),可以使用imagedestroy()释放内存。这是一个例子:

function resize($width, $image,$path,$rand,$i) {
    $max_width = $width;
    $old_width = imagesx($image);
    $old_height = imagesy($image);
    $scale = ($max_width / $old_width);
    $new_width = ceil($scale*$old_width);
    $new_height = ceil($scale*$old_height);
    $new = imagecreatetruecolor($new_width, $new_height);
    imagecopyresampled($new, $image, 0, 0, 0, 0, $new_width, $new_height, $old_width, $old_height);

    imagedestroy($image);

    return imagejpeg($new,"../../../bonangana/img/albums/$path/" . $rand . "_". str_replace(" ", "_", trim($_FILES['file']['name'][$i])));
}