【发布时间】:2008-11-19 13:43:28
【问题描述】:
“致命错误:允许的内存大小为 31457280 字节已用尽(尝试分配 9828 字节)”。
这是我得到的错误,但我只是想上传一个 1mb 的图像。我增加了 php.ini 中的内存限制和执行时间。我正在使用 firefox 的 Mac 上的本地 MAMP 服务器上尝试此操作。这将用于在线图片库。 有任何想法吗? 下面是代码:
ini_set("memory_limit","30M");
if(isset($_POST['submit'])){
if (isset ($_FILES['new_image'])){
$imagename = $_FILES['new_image']['name'];
$source = $_FILES['new_image']['tmp_name'];
$target = "images/".$imagename;
move_uploaded_file($source, $target);
$imagepath = $imagename;
//below here for the removed code
$save = "thumbs/uploads/" . $imagepath; //This is the new file you saving
$file = "images/" . $imagepath; //This is the original file
$imagesize = getimagesize($file);
list($width, $height) = $imagesize;
unset($imagesize);
if($width>$height)
{
$modwidth = 150;
$diff = $width / $modwidth;
$modheight = $height / $diff;
}else{
$modheight = 150;
$diff = $height / $modheight;
$modwidth = $width / $diff;
}
$tn = imagecreatetruecolor($modwidth, $modheight);
$image = imagecreatefromjpeg($file);
$imagecopy = imagecopyresampled($tn, $image, 0, 0, 0, 0, $modwidth, $modheight, $width, $height);
imagedestroy($image);
imagedestroy($im);
imagedestroy($imagecopy);
imagedestroy($source);
$imagejpg = imagejpeg($tn, $save, 100);
imagedestroy($tn);
imagedestroy($imagejpg);
编辑
希望现在已经解决了这个问题。我的一位同事一直有解决方案,但没有告诉我!
【问题讨论】:
-
这有点含糊。也许发布一段 sn-p 代码可以帮助人们理解你在做什么(如果 bug 是你的错)
-
只是一个挑剔,但 $imagecopy、$imagejpg 和 $source 不是资源,所以你不应该对它们调用 imagedestroy。
标签: php