Я пытаюсь загрузить изображение на свой localhost прямо сейчас. Это не проблема, если это небольшое изображение (не более 1 МБ). Но когда я пытаюсь загрузить около 3 МБ изображения. Php:Ошибка утечки памяти Laravel?
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 18048 bytes) in C:\Users\Tharit\Desktop\Work\Pixelbar\Code\ecompro\vendor\intervention\image\src\Intervention\Image\Gd\Decoder.php on line 115
Это не должно быть так много. Это код, при загрузке изображения.
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;}
}
Я подозреваю, что проблема заключается в изменении размера изображения. Если это используется gd, вам нужно разрешить высоту изображения x ширину x 4 байта памяти для изображений до и после изменения размера –
@MarkBaker вы имеете в виду pre + post? – Expl0de
Я имею в виду, что вы должны позволить достаточно памяти иметь как полноразмерное изображение, так и миниатюру в памяти PHP одновременно. –