【问题标题】:Laravel Intervention/image memory_limitLaravel 干预/图像 memory_limit
【发布时间】:2017-12-04 13:18:49
【问题描述】:

在我的 Floder 中,我有 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)

正如人们所说,我尝试使用 ->destroy() 和 ini_set('memory_limit','128M') ,但没有帮助。我的服务器有 128MB 内存。请帮帮我!

【问题讨论】:

    标签: image laravel laravel-5 image-resizing intervention


    【解决方案1】:

    这个错误可能是 PHP 抛出的。尝试更改php.ini文件中的这些行并重新启动服务器:

    memory_limit = 128M
    

    您还应该检查这一行:

    max_execution_time = 30
    

    这是脚本的最大执行时间,它也会给你带来麻烦。

    但请注意,134217728 bytes 正是 128mb。所以,这根本不应该有效。如果你保持相同的代码,你可能需要更多的内存。

    【讨论】:

    • 我知道代码中的问题,但我不明白在哪里。
    • 尝试增加服务器的物理内存,更改PHP.ini,重启服务器,检查错误是否修复。如果解决方案有效,您就可以开始编写代码了。
    • 关于代码,您可以尝试的一件事是逐个文件加载。尽量不要一起加载所有文件,因为这将需要 ~120mb。
    • 我不能,因为它不是本地服务器。这个网站留在托管。在我的本地服务器中它的工作。我检查了 - 有 128 MB 内存
    • 怎么做?逐个文件加载
    【解决方案2】:

    你可以尝试编辑/etc/php5/fpm/php.ini:

    ; Old Limit
    ; memory_limit = 512M
    
    ; New Limit
    memory_limit = 2048M
    

    你需要重启apache。

    【讨论】:

      猜你喜欢
      • 2015-02-09
      • 2019-01-16
      • 2017-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-11
      • 1970-01-01
      相关资源
      最近更新 更多