2017-12-04 5 views
0

내 플레 더에는 120MB의 이미지가 있습니다. 하나의 이미지 - 3MB 근처. 나는 그들 크기를 조정하려면이 코드를 사용하려고 :Laravel Intervention/image memory_limit

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) 

-> (파괴) 및 위해서는 ini_set ('memory_limit를', '128M')을 사람들이 말하는 것처럼,하지만 도움이 안됐어. 내 서버에는 128MB의 메모리가 있습니다. 도와주세요, 제발!

답변

0

이 오류는 PHP에서 발생합니다. 또한이 줄을 확인해야합니다

memory_limit = 128M 

:

max_execution_time = 30 

이 스크립트의 최대 실행 시간을 당신에게 문제를 너무 발생할 수 php.ini 파일에 다음 줄을 변경하고 서버를 다시 시작하십시오 .

134217728 bytes은 정확히 128mb입니다. 그래서, 이것은 전혀 효과가 없어야합니다. 동일한 코드를 유지한다면 더 많은 메모리가 필요할 것입니다.

+0

나는 코드에서 그 문제를 안다. 그러나 나는 이해할 수 없다. –

+0

서버의 실제 메모리를 늘리고 PHP.ini를 변경하고 서버를 다시 시작하여 오류가 수정되었는지 확인하십시오. 솔루션이 작동하면 코드 작업을 시작할 수 있습니다. – Laerte

+0

코드와 관련하여 시도해 볼 수있는 한 가지 방법은 파일별로 파일을로드하는 것입니다. 모든 파일을 함께로드하지 마십시오. 120MB가 필요합니다. – Laerte

0

당신은 /etc/php5/fpm/php.ini 편집을 시도 할 수 있습니다 :

; Old Limit 
; memory_limit = 512M 

; New Limit 
memory_limit = 2048M 

당신은 아파치를 다시 시작해야합니다.

관련 문제