2016-05-25 3 views
0

StackOverflow! У меня проблема с загрузкой файла с помощью jQuery. Все хорошо работает на моем локальном хосте, но на пульте дистанционного управления у меня есть проблема с $ .ajaxОтвет сервера с ошибкой 500 на файл AJAX POST

Вот моя часть моего JavaScript:

... 
var formData = new FormData(); 
formData.append('image', this.files[0]); 
formData.append('target_name', targetname); 
formData.append('target_id', $('#mediaTargetId').val()); 
$.ajaxSetup({ 
    headers: { 
    'X-XSRF-Token': $('meta[name="_token"]').attr('content') 
    } 
}); 
$.ajax({ 
    url: "/admin/uploadMedia", 
    type: "POST",    
    data: formData, 
    contentType: false,  
    cache: false,    
    processData:false, 
    beforeSend: function(){ 
} 
... 

И PHP (Laravel), который получил эту должность (здесь есть пример как раз, чтобы проверить, что данные были получены):

public function uploadMedia() { 
    return Input::get('target_name', 'no-target'); 
} 

И некоторые phpinfo():

post_max_size 8M 
upload_max_filesize 2M 
file_uploads On 
_SERVER["SERVER_SOFTWARE"] Apache/2.2.15 (CentOS) 

При этом настройки удаленного узел возврат Ошибки 500, пока я не закомментировать это:

formData.append('image', this.files[0]); 

Надеется, что вы можете мне помочь и спасибо заранее!

+0

просмотрите журналы ошибок сервера для получения более подробной информации о 500. Это должно быть ПЕРВОЕ место, которое вы проверяете, когда получаете 500. –

ответ

0

Спасибо @MarcB, я исправлю это после проверки журнала ошибок. Причина моей ошибки 500 был «fcgidmaxrequestlen» параметр с этим сообщением в журнале ошибок:

mod_fcgid: HTTP request length 137536 (so far) exceeds MaxRequestLen (131072) 

Так что я не могу загрузить файлы больше чем 128kb. Решение в HTTPd конфигурационном файле:

/etc/httpd/conf.d/fcgid.conf - Path for CentOS 

Просто отредактировать его с вашим любимым редактором (VIM, нано- и т.д.) и изменить или добавить эту строку в конфиг:

FcgidMaxRequestLen 10485760 

Теперь ограничивает вверх до 10 Мб. Затем перезапустите службу httpd:

service httpd restart 

И все готово. Еще раз спасибо @MarcB за идею.

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