`
zxs19861202
  • 浏览: 916017 次
  • 性别: Icon_minigender_1
  • 来自: 湖北—》上海
社区版块
存档分类
最新评论

XMLHttpRequest 分割上传文件显示进度

    博客分类:
  • php
 
阅读更多

 

 xhr = new XMLHttpRequest();

 var clock = null;

 

 //file选择,触发定时器函数

 function upload(){

     clock = window.setInterval(selectfile,1000);

     //定时1s

 }

 

 //闭包函数

 var selectfile = (function(){

 

     const LENGTH = 1*1024*1024;//每次截取的长度

     var sta = 0;                //从零处开始截取

     var end = sta +LENGTH;

     var flag = false;    //表示上一块是否发送完毕

     var blob = null;

     var fd = null;

     var percent = 0;

 

         //匿名函数

     return(function (){

 

         if(flag == true){    //是否正在上传

             return;

         }

         flag = true;

         var mov = document.getElementById('pdfFile').files[0];/* blob对象 */

 

 var proId=document.getElementById('projectId').value;

         

         fd = new FormData();

         blob = mov.slice(sta,end);

         fd.append('pdfFile',blob);

 fd.append('proId',proId);

         up(fd);

 

         //如果sta > mov.size 就结束

         if(sta >= mov.size){

             clearInterval(clock);    //清除定时

             return ;

         }

         sta = end;

         end = sta + LENGTH;

         flag = false;    //上传完毕

         

         percent = 100 * end /mov.size ;

         percent = percent >= 100 ? 100 : percent;

 

         percent=percent.toFixed(2);

 

        var son =  document.getElementById('son');  

         son.innerHTML = percent+"%";  

         son.style.width=percent+"%";  

 

     });

 })();

 

 

 

function up(fd){

 

    xhr.open("post","<?= site_aurl($tablefunc.'/upload') ?>",false);  

    xhr.send(fd);

}

 

分享到:
评论

相关推荐

    php + flash 大文件 上传显示进度

    总的来说,通过PHP和Flash的结合,我们可以实现大文件的分块上传和进度显示,提供良好的用户体验。然而,随着技术的发展,开发者也需要关注更安全、更现代的替代方案,如HTML5的Web Storage和Web Workers等。

    HTML5分割上传文件

    文件切割上传的核心技术主要包括Blob对象、FileReader API和XMLHttpRequest Level 2。Blob对象代表二进制大型对象,可以用来处理存储在浏览器中的非结构化数据。FileReader API则允许我们在浏览器环境中读取文件内容...

    上传文件(图片缩略图上传带进度显示)

    "上传文件(图片缩略图上传带进度显示)"这一主题聚焦于如何在上传过程中提供友好的用户体验,包括实时的进度指示以及预览图片的缩略图功能。下面将详细探讨这一领域的关键知识点。 首先,大文件上传通常涉及到分块...

    ASP.NET MVC批量、分段上传文件并显示上传进度

    总之,实现ASP.NET MVC中的批量和分段文件上传,并显示上传进度,需要结合前端的File API和FormData以及后端的ASP.NET MVC控制器。通过这种方式,用户可以监控上传进度,提升用户体验,同时处理大文件和多个文件上传...

    java web 文件上传进度条源码

    本项目提供的"java web 文件上传进度条源码"着重解决了这一需求,包括已用时间、剩余时间、上传速度以及进度条的显示。下面我们将深入探讨相关知识点。 1. **Servlet与HTTP请求**: Java Web应用通常使用Servlet来...

    上传大文件并显示进度条控件实例

    当文件被分割并上传时,前端可以通过监听XMLHttpRequest(或Fetch API)的`progress`事件来更新进度条的状态。每次接收到服务器响应时,可以通过计算已上传的数据量与总数据量的比例来更新进度条的值。 接下来是...

    文件分割(js脚本).rar

    3. **分块上传**: 分割文件后,每个小块可以独立上传,这在大文件上传时非常实用,因为它允许进度条显示,即使网络中断也能从上次断点继续上传。 4. **Promise和async/await**: 当处理大文件时,JavaScript的异步...

    net上传大文件显示进度条

    因此,通常会将大文件分割成多个小块进行上传。每个块独立发送,上传完成后在服务器端重新组合成原始文件。 2. **异步处理**:为了保持界面的响应性,文件上传应使用异步操作。这使得用户可以在上传过程中继续浏览...

    Common-FileUpload带进度条文件上传

    使用此类库可以简化开发者的工作,避免从零开始编写文件上传和进度显示的代码。 4. AJAX与XMLHttpRequest:在实现带进度条的文件上传时,通常会用到AJAX和XMLHttpRequest对象。它们允许前端与服务器进行异步通信,...

    js上传文件js 上传单个文件(任意大小)

    通过监听`XMLHttpRequest`的`onprogress`事件或`Fetch API`的`response.body`流读取,可以实时更新上传进度,显示已上传的百分比或速度信息。 ### 示例代码解析 给定的部分内容展示了使用`ActiveXObject`和`ADODB....

    客户端上传文件到服务器

    - AJAX:通过XMLHttpRequest对象实现异步文件上传,可以实时显示上传进度,提升用户体验。 - 多文件上传:HTML5引入了multiple属性,允许用户一次选择多个文件进行上传。 - 图片预览:前端可以使用File API读取...

    php+html5实现无刷新上传,大文件分片上传,断点续传

    大文件分片上传是将大文件分割成多个小块,逐个上传。这样可以降低单次上传的压力,提高成功率。前端通过File API的slice方法切割文件,每次上传一个分片,后台接收并存储。一旦所有分片成功上传,再在后台合并成...

    php大文件上传

    我们可以将大文件分割成多个小块,然后逐个上传。这种方式降低了单次请求的压力,有利于网络不稳定时的恢复。PHP中,可以通过`fread()`函数读取文件的特定部分,`cURL`库则可以用于发送HTTP请求,实现文件分块上传。...

    .net大文件上传显示进度条

    在.NET开发环境中,大文件上传并显示进度条是一项常见的需求,尤其在Web应用程序中,用户可能需要上传几GB的大文件,而这样的操作如果没有进度反馈,用户体验会大大降低。本示例是基于VS2010的.NET源代码,无需额外...

    带进度条大文件上传源码(单文件多文件都可以传) v2.0.rar

    【标题】"带进度条大文件上传源码(单文件多文件都可以传) v2.0.rar" 提供的是一个基于.Net技术实现的文件上传解决方案,特别针对大文件和批量文件上传进行了优化,并且带有进度条显示,为用户提供更好的交互体验。...

    C# .net framework MVC 大文件分片上传

    前端页面可以使用`FormData`对象来封装文件片段,并使用`XMLHttpRequest`的`upload`对象监听`progress`事件,从而获取上传进度并更新进度条。需要注意的是,为了跨域支持,需要在控制器中设置适当的CORS策略。 对于...

    批量上传文件

    前端通常采用JavaScript或其库(如jQuery、React、Vue等)来处理文件选择、分块、进度显示以及与服务器的交互。HTML5引入了File API,使得在浏览器环境中处理文件变得更加容易。文件选择可以通过`...

    jquery 大文件上传

    综上所述,jQuery大文件上传涉及到HTML5的File API、FormData对象、Ajax异步请求等技术,配合特定的jQuery插件,可以实现大文件的分块上传及进度显示。实际应用中,开发者需要根据具体需求和环境选择合适的解决方案...

    上传大文件控件

    3. **进度显示**:为了提供良好的用户体验,上传大文件时通常需要显示实时的上传进度。这可以通过监听FileReader的`progress`事件或使用XMLHttpRequest的`upload.onprogress`事件来实现。 4. **断点续传**:如果...

    带进度条的文件上传

    本主题将深入探讨如何实现"带进度条的文件上传",主要涉及PHP编程语言,以及如何显示上传进度。 首先,我们需要理解文件上传的基本原理。在HTTP协议中,文件上传通常通过POST请求完成,数据以表单形式提交给服务器...

Global site tag (gtag.js) - Google Analytics