资讯专栏INFORMATION COLUMN

js获取文件上传进度

番茄西红柿 / 1751人阅读

摘要:获取文件上传进度提交监听绑定监听使用闭包实现监听绑通过获得对象判断监听函数是否为函数如果有监听函数并且对象支持绑定时就把监听函数绑定上去文件上传函数获取文件对象加入文件对象上传文件无需缓存用于对参数进行序列化处理这里必须必须文件上传百分比完

js获取文件上传进度:



js监听:

var xhrOnProgress=function(fun) {
	  xhrOnProgress.onprogress = fun; //绑定监听
	  //使用闭包实现监听绑
	  return function() {
	    //通过$.ajaxSettings.xhr();获得XMLHttpRequest对象
	    var xhr = $.ajaxSettings.xhr();
	    //判断监听函数是否为函数
	    if (typeof xhrOnProgress.onprogress !== function)
	      return xhr;
	    //如果有监听函数并且xhr对象支持绑定时就把监听函数绑定上去
	    if (xhrOnProgress.onprogress && xhr.upload) {
	      xhr.upload.onprogress = xhrOnProgress.onprogress;
	    }
	    return xhr;
	  }
}

 ajax文件上传函数:

function Submit(){

		 var fileObj = document.getElementById("FileUpload").files[0]; // js 获取文件对象
		 var formFile = new FormData();
		 
         formFile.append("file", fileObj); //加入文件对象
        
          var data = formFile;
          $.ajax({
                   url: url,
                   data: data,
                   type: "Post",
                   dataType: "json",
                   cache: false,//上传文件无需缓存
                   processData: false,//用于对data参数进行序列化处理 这里必须false
                   contentType: false, //必须
                   xhr:xhrOnProgress(function(e){
		   			  var percent=e.loaded/e.total;//文件上传百分比
		   			  console.log(percent);
		   		   }),
                   success: function (result) {
                       console.log(result);
                   },
               })
	}

  

完整代码:




	
	
	
	Document


	
	  

	  





  

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/1953.html

相关文章

  • 文件上传进度提示

    摘要:需求当上传的文件相对较大时,用户可能需要等待较长的时间,这个时候前端如果没有任何提示的话,体验不是很好,如果有上传进度提示,就会好很多。 需求 当上传的文件相对较大时,用户可能需要等待较长的时间,这个时候前端如果没有任何提示的话,体验不是很好,如果有上传进度提示,就会好很多。而要在上传过程实时显示上传进度,则需要已上传的大小和文件总大小。 前提 请求是异步的。因为要实时获取到上传的进度...

    MageekChiu 评论0 收藏0
  • 在Vue项目中使用WebUploader实现文件上传

    摘要:简介是由团队开发的一个简单的以为主,为辅的现代文件上传组件。采用大文件分片并发上传,极大的提高了文件上传效率。另外分片传输能够更加实时的跟踪上传进度。选择文件的按钮。 简介:WebUploader是由Baidu WebFE(FEX)团队开发的一个简单的以HTML5为主,FLASH为辅的现代文件上传组件。在现代的浏览器里面能充分发挥HTML5的优势,同时又不摒弃主流IE浏览器,沿用原来的...

    mindwind 评论0 收藏0
  • 在Vue项目中使用WebUploader实现文件上传

    摘要:简介是由团队开发的一个简单的以为主,为辅的现代文件上传组件。采用大文件分片并发上传,极大的提高了文件上传效率。另外分片传输能够更加实时的跟踪上传进度。选择文件的按钮。 简介:WebUploader是由Baidu WebFE(FEX)团队开发的一个简单的以HTML5为主,FLASH为辅的现代文件上传组件。在现代的浏览器里面能充分发挥HTML5的优势,同时又不摒弃主流IE浏览器,沿用原来的...

    endiat 评论0 收藏0
  • 在Vue项目中使用WebUploader实现文件上传

    摘要:简介是由团队开发的一个简单的以为主,为辅的现代文件上传组件。采用大文件分片并发上传,极大的提高了文件上传效率。另外分片传输能够更加实时的跟踪上传进度。选择文件的按钮。 简介:WebUploader是由Baidu WebFE(FEX)团队开发的一个简单的以HTML5为主,FLASH为辅的现代文件上传组件。在现代的浏览器里面能充分发挥HTML5的优势,同时又不摒弃主流IE浏览器,沿用原来的...

    funnyZhang 评论0 收藏0
  • TP5整合阿里云OSS上传文件第二节,异步上传头像实现,

    摘要:版本也是我最喜欢的方式这个代码有点黏在一起了凑合看把李昊天创建实例服务器异步接受地址指定选择文件的按钮容器禁止多选不压缩选择之后自动上传防止低版本浏览器用到了只允许选择图片文件。 TP5整合阿里云OSS上传文件第二节,上传头像实现首先先看一个效果图上传失败效果图:showImg(https://segmentfault.com/img/bVbaJLZ?w=983&h=561);上传成功...

    douzifly 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<