AJAX文件POST上的错误500的服务器响应

时间:2016-05-25 15:21:09

标签: php jquery ajax

的StackOverflow! 我有使用jQuery上传文件的问题。一切都在我的本地主机上运行良好,但在远程我有$ .ajax

的问题

以下是我的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(){
}
...

接收此POST的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]);

希望你能帮助我,并提前感谢你!

1 个答案:

答案 0 :(得分: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,nano等)进行编辑,然后将此行更改或添加到配置中:

FcgidMaxRequestLen 10485760

现在它限制高达10Mb。然后重启httpd服务:

service httpd restart

它已经完成了。再一次,感谢@MarcB的想法。