2014-01-14 7 views
0

Когда я пытаюсь загрузить файлы с помощью загрузки файла jQuery, все работает так, как планировалось, для любого количества файлов до 5. Когда я пытаюсь выполнить POST 5 или более файлов, сервер отвечает 404 Not Found, но POSTing 4 файла на тот же URL, который он загружает и обрабатывает отлично. В чем может быть проблема?404 Не найдено при загрузке файла после 5 файлов

Я запускаю nginx, php-fpm и laravel. Я даже устанавливаю client_max_body_size равным 0 после попыток высоких лимитов.

Журнал доступа для 4 Файлы:

192.168.1.144 - - [14/Jan/2014:10:49:28 -0500] "POST /admin/job/1 HTTP/1.1" 302 449 "http://192.168.1.100:8080/admin/job/1/edit" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36" "-" 

Журнал доступа для 5 файлов:

192.168.1.144 - - [14/Jan/2014:10:45:01 -0500] "POST /admin/job/1 HTTP/1.1" 404 223 "http://192.168.1.100:8080/admin/job/1/edit" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36" "-" 

Прикрепленный образы консоли в хроме.

5 Изображение Загрузить Тест

5 Images Upload Test

4 Изображение Загрузить Тест

4 Images Upload Test

Edit: Код для POST Маршрут:

public function update($id) 
    { 
     $input = \Input::except('photos'); 
     $job = \Job::findOrFail($id); 
     $job->fill($input); 

     if(Input::hasFile('photos')) 
     { 
      $photos = Input::file('photos'); 

      /** 
      *@var $photos Uploadedfile[] 
      */ 
      foreach ($photos as $index => $photo) 
      { 
       $fileName = \Str::random(8) .'.'. $photo->getClientOriginalExtension(); 
       $file = $photo->move(public_path() .'/job_images/', $fileName); 

       $jp = new \Job\Photo(array('image' => $fileName, 'description' => $input['description'][$index])); 
       $job->photos()->save($jp); 
      } 
     } 

     $job->save(); 
     return Redirect::route('admin.job.show', $id); 
    } 
+0

Можете ли вы разместить код, на который перенаправляется маршрут? – Pat

+0

@Pat загружено, извините за это –

+0

Я бы предложил использовать die и dump перед if, перед foreach, и перед возвратом, чтобы увидеть, где именно он попадает, но не работает. – Pat

ответ

0

Таким образом, после копать немного глубже, я обнаружил, что ошибка появляется в PHP-FPM журнал ошибок со следующими сообщениями

[14-Jan-2014 16:33:07 UTC] PHP Warning: POST Content-Length of 9142976 bytes exceeds the limit of 8388608 bytes in Unknown on line 0 
[14-Jan-2014 16:38:45 UTC] PHP Warning: POST Content-Length of 12260767 bytes exceeds the limit of 8388608 bytes in Unknown on line 0 

что привело меня к проблеме существа с PHP, я сначала изменил post_max_size на 0, но необходимо было повысить upload_max_filesize = 2M до более высокого предела, и это устранило мою проблему.

Я также установил лимит в конфигурации nginx client_max_body_size до 50M;

+1

Да, я собирался сказать «upload_max_filesize» и «post_max_size», – Pat

Смежные вопросы