2016-05-25 96 views
0

StackOverflow! 我有使用jQuery上傳文件的問題。工作一切良好,在我的本地,而是遠程我有$就服務器響應AJAX文件上的錯誤500 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 

現在它限制了到10Mb。然後重新啓動httpd服務:

service httpd restart 

然後就完成了。再次感謝@MarcB的想法。

相關問題