在我的版本中,我有120MB的图像。一张图片 - 接近3 MB。我尝试使用此代码来调整它们的大小:
public function images_zip(Request $request){
if($request->width < 1 || $request->hight < 1 || $request->width > 2000 || $request->hight >2000){
return Redirect::back()->withErrors(['Некорректные входные данные']);
}
$files = Storage::disk('images')->files('/'.$request->name.'/image');
$mime_types = array('image/gif','image/jpeg','image/png','image/svg+xml');
ini_set('memory_limit','128M');
foreach ($files as $file){
if(in_array(File::mimeType($file),$mime_types)) {
$img = Image::make(public_path() . '/' . $file);
$img->resize($request->width, $request->hight);
$img->save(public_path() . '/' . $file);
$img->destroy();
}
}
return \redirect()->back();
}
但我接受了这个错误 -
Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes)
我尝试使用 - &gt; destroy()和ini_set('memory_limit','128M'),就像人们说的那样,但它没有帮助。我的服务器有128MB内存。请帮帮我!
答案 0 :(得分:0)
PHP可能会引发此错误。尝试更改php.ini
文件中的这些行并重新启动服务器:
memory_limit = 128M
您还应该检查以下一行:
max_execution_time = 30
这是脚本的最长执行时间,也可能导致问题。
但请注意134217728 bytes
正是128mb
。所以,这根本不应该有效。如果你保留相同的代码,你可能需要更多的内存。
答案 1 :(得分:0)
您可以尝试编辑/etc/php5/fpm/php.ini:
; Old Limit
; memory_limit = 512M
; New Limit
memory_limit = 2048M
你需要重启apache。