的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]);
希望你能帮助我,并提前感谢你!
答案 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的想法。