php-如何通过ajax上传文件而没有超时?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php-如何通过ajax上传文件而没有超时?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1262字,纯文字阅读大概需要2分钟。
内容图文
![php-如何通过ajax上传文件而没有超时?](/upload/InfoBanner/zyjiaocheng/670/7e3263f7f0fe45a59001e5af97c18ddc.jpg)
我正在使用ajax上传一组约50个文件,全部< = 5MB.如果连接速度较慢,则上传将“超时”,甚至没有完成第一次上传(大约需要45秒).
在Firefox中,ajax将失败并显示“错误”响应,但没有更多信息.
在Chrome中,出现net :: ERR_CONNECTION_RESET错误.
我检查了我的Apache和php.ini设置,我相信它们已经足够.
post_max_size = 1000M
upload_max_filesize = 15M
max_input_time = -1
max_execution_time = 0
max_file_uploads = 50
memory_limit = 128M
我也尝试将ajax的timeout参数设置为0.我的ajax请求看起来像这样:
return $.ajax({
url: ajaxpath,
type: 'post',
data: formData,
dataType: 'json',
timeout: 0,
xhr: function(){
var myXhr = $.ajaxSettings.xhr();
if(myXhr.upload) myXhr.upload.addEventListener('progress',function(e){
uploadProgress(e,item);
},false);
return myXhr;
},
processData: false,
contentType: false
}).fail(function(jqXHR,textStatus,errorThrown){
console.log(textStatus,errorThrown);
});
}
随着连接速度的加快,我似乎没有遇到这个问题.如果我使用浏览器的开发人员工具来限制速度,那将会发生,这就是我复制用户情况的方式.
我在某处缺少设置吗?如何保持上传状态?
解决方法:
使用mod_reqtimeout Apache模块最终解决了我的问题:
RequestReadTimeout header = 20-40, MinRate = 500 body = 20, MinRate = 500
我在a similar question的底部找到了这个建议.
作为参考,我尝试增加各种ini设置,Apache TimeOut指令以及set_time_limit php函数,但均未成功.
内容总结
以上是互联网集市为您收集整理的php-如何通过ajax上传文件而没有超时?全部内容,希望文章能够帮你解决php-如何通过ajax上传文件而没有超时?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。