ajax上传文件,执行progress失败

ajax上传文件,执行progress失败

接了一个项目是给一个ajax文件上传添加个进度条。
也怪自己没走脑子,各种方法试了无数次都不行,都是progress不执行。
最后大佬一句话问是不是异步没开,瞬间感觉自己像个白痴。


function saveapp(file) {
	var div = $(file).parent().next("#preview");
	if(file.files && file.files[0]) {	
		div.empty();
		var reader = new FileReader();
		var filemaxsize = 100*1024*1024;
		var size = file.files[0].size;
		if (size > filemaxsize) {
			alert("附件大小不能大于100M!");
			target.value = "";
			return false;
		}
		reader.readAsDataURL(file.files[0]);
		showLoading("正在上传,请等待 ...");
		var formData = new FormData();
		formData.append('upfile',file.files[0]);
		$.ajax({  
	        url:  "ajaxphp.do",  
	        type: 'POST',  
	        data: formData,  
	        async: false,  
	        //cache: false,  //重点就在这里,想要progress执行这里一定不能是false
	        contentType: false,  
	        processData: false,  
	        xhr: function(){ //获取ajaxSettings中的xhr对象。
	        	var xhr = $.ajaxSettings.xhr();
	        	if (xhr.upload) {
                       xhr.upload.addEventListener("progress", function (e) {
                                   var loaded = e.loaded;//已经上传大小情况
                                   var tot = e.total;//附件总大小
                                   var per = Math.floor(100*loaded/tot);  //已经上传的百分比
                                   $("#upload_son").html( per +"%" );
                                   $('#upload_progress').val(per);
                                   console.log('附件总大小 = ' + loaded);
                                   console.log('已经上传大小 = ' + tot); 
                               }, false);
                       return xhr;
               }  
	        
           }, 
	        success: function (returndata) {  
	        	var infoData = new Function("return" + returndata)();
	        	if(infoData.msgFlag=='0'){
	        		div.empty();
	        		div.append(infoData.msgContent);
	        	}else{
	        		var hid;
	         		var hname;
	        		div.children("#savepath").remove(); 
	         		div.append('<input id="savepath" name="bappmerlog.savepath" value="'+infoData.appsource+'" type="hidden">');
	         		div.append("保存app成功");
	        	}
        		closeLoading();
	        },  
	        error: function (returndata) {  
	        	closeLoading();
	        }
	  });
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值