Laravel Intervention内存泄漏?

时间:2015-01-29 14:20:09

标签: php laravel laravel-4 memory-leaks

我现在正尝试将图片上传到我的localhost。它没有问题,如果它是一个小图像(不超过1 MB)。但是当我尝试上传大约3MB的图像时。 Php说

  

致命错误:在C:\ Users \ Tharit \ Desktop \ Work \ Pixelbar \ Code \ ecompro \ vendor \ intervention \ image \ src \ Intervention \ Image \中,允许的内存大小为134217728个字节(尝试分配18048个字节)第115行的Gd \ Decoder.php

不应该这么多。这是代码,在图片上传部分。

        if (Input::hasFile('profile_picture'))
            {
                $old_profile_pic= $user->profile_pic;
                $profile_picture = Input::file('profile_picture');
                $profile_picture_size=getimagesize($profile_picture);
                if($profile_picture_size[0]>$profile_picture_size[1])
                {
                    $mainside = $profile_picture_size[1];
                    $cordx=($profile_picture_size[0]-$profile_picture_size[1])/2;
                    $cordx=(int) $cordx;
                    $cordy=0;
                }
                else
                {
                    $mainside = $profile_picture_size[0];
                    $cordy=($profile_picture_size[1]-$profile_picture_size[0])/2;
                    $cordy=(int) $cordy;
                    $cordx=0;
                }
                $filename  = time() .$user->id . '.' . $profile_picture->getClientOriginalExtension();
                $path = public_path('img/user/' . $filename);
                Image::make($profile_picture->getRealPath())
                            ->crop($mainside,$mainside,$cordx , $cordy)
                            ->resize(100, 100)
                            ->save($path);
                $user->profile_pic = 'img/user/'.$filename;
                if($old_profile_pic != 'img/user/default_profile.gif')
                    {$imagecheck=1;}
            }

2 个答案:

答案 0 :(得分:0)

检查你的php.ini文件中的这一行

的upload_max_filesize = 1M

并将其更改为upload_max_filesize = 10M

或改变" 1M"以MB为单位的任何其他所需文件大小

答案 1 :(得分:0)

您必须在php ini中设置许多参数才能使大文件上传成为可能。他们是:

upload_max_filesize
post_max_size
max_input_time
max_execution_time
memory_limit

您应该找到有用的注释,以便在php ini文件中设置它们。

另外,它存在内存错误,所以我认为它与文件上传无关。 memory_limit应该修复它。尝试将memory_limit设置为-1以分配无限的内存,并确定它是否真的是内存问题。