图像上传后图像调整大小时的php内存限制问题

时间:2014-04-17 13:14:08

标签: php image image-uploading image-resizing memory-limit

Hy,我有一个页面,用户可以上传图像(一次一个,第二个上传覆盖第一个)。

当有人选择的图像超过5 MB时,脚本会上传图像,但会运行另一个脚本,调整图像大小以使其缩小。

所以,我得到图像大小,并设置最大尺寸:

$size = $_FILES["userImage"]["size"]
$maxSize = 5000000 //this should be 5 MB, right?

然后,我将图像移动到具有此行的文件夹

move_uploaded_file( $tmpName, "../user_img/".$sessionId."/".$sessionId."_img.".$type);  

最后,如果图像高于5 MB

,我想调整图像大小
if($size > $maxSize){
include('resizeImage2.php'); 
//indicate which file to resize (can be any type jpg/png/gif/etc...)
$file = "../user_img/".$sessionId."/".$sessionId."_img.".$type;

//indicate the path and name for the new resized file
$resizedFile = $file;

//call the function (when passing path to pic)
//smart_resize_image($file, null, 1200, 0, true, $resizedFile, true, false, 100 );
//call the function (when passing pic as string)
smart_resize_image(null , file_get_contents($file), 1200 , 0 , true , $resizedFile , true , false ,100 );
    }

resizeImage2.php是我在互联网上找到的address

当我尝试从我的PC上传图像为7MB,分辨率为10004 x 10967时,会出现问题。我收到错误

允许的内存大小为62914560字节耗尽(尝试分配40016字节)

我知道我可以更改php.ini中的内存限制,但我想知道是否有其他方法可以使这项工作?我的任何剧本写得不好吗?

提前致谢!

3 个答案:

答案 0 :(得分:2)

试试这个把它放在页面上的标题 -

<?php
ini_set('memory_limit','16M');
?>

答案 1 :(得分:2)

您可以通过添加或更新类似于以下内容的行来增加php.ini文件中的上传文件限制:

memory_limit = 128M

答案 2 :(得分:0)

有两种技巧可以增加php中的最大上传大小

.htaccess

增加文件上传大小
php_value upload_max_filesize 10M

php.ini个文件增加文件上传大小

upload_max_filesize = 10M