首页 > web前端 > H5教程 > 正文

html5大文件上传技术分享

墨辰丷
发布: 2018-05-10 17:35:35
原创
3427 人浏览过

这篇文章主要介绍html5如何实现上传大文件技术,在此分享给大家,有需要的小伙伴参考下。

代码如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
  <div>  
         <div>                                                               
            添加文件  
                   <input type="file" name="" id="fileinput">                                                                       
               </div>  
               <progress value="0" max="100" style=&#39;width:500px;margin-top:20px&#39;></progress>  
               <div style=&#39;margin-top:20px&#39;>  
                   <span id="handler_info" ></span>  
               </div>  
           </div>      
     <script src="Scripts/spark-md5.js"></script>  
     <script>  
       function get_filemd5sum(ofile) {  
           var file = ofile;  
           var tmp_md5;  
           var blobSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice,  
               // file = this.files[0],  
               chunkSize = 2 * 1024 * 1024, // Read in chunks of 2MB  
               chunks = Math.ceil(file.size / chunkSize),  
               currentChunk = 0,  
               spark = new SparkMD5.ArrayBuffer(),  
               fileReader = new FileReader();  
           fileReader.onload = function(e) {  
               // console.log(&#39;read chunk nr&#39;, currentChunk + 1, &#39;of&#39;, chunks);  
               spark.append(e.target.result); // Append array buffer  
               currentChunk++;  
               var md5_progress = Math.floor((currentChunk / chunks) * 100);  
               console.log(file.name + "  正在处理,请稍等," + "已完成" + md5_progress + "%");  
               var handler_info = document.getElementById("handler_info");  
               var progressbar = document.getElementsByClassName("progressbar")[0];  
               handler_info.innerHTML=file.name + "  正在处理,请稍等," + "已完成" + md5_progress + "%"  
               progressbar.value =md5_progress;  
               if (currentChunk < chunks) {  
                   loadNext();  
               } else {  
                   tmp_md5 = spark.end();  
                   console.log(tmp_md5)  
                   handler_info.innerHTML = file.name + "的MD5值是:" + tmp_md5;  
               }  
           };  
           fileReader.onerror = function() {  
               console.warn(&#39;oops, something went wrong.&#39;);  
           };  
           function loadNext() {  
               var start = currentChunk * chunkSize,  
                   end = ((start + chunkSize) >= file.size) ? file.size : start + chunkSize;  
               fileReader.readAsArrayBuffer(blobSlice.call(file, start, end));  
           }  
           loadNext();  
       }  
       var uploadfile  = document.getElementById(&#39;fileinput&#39;)  
       uploadfile.onchange = function(e){  
           var file = this.files[0];  
            if(!file) {  
               alert(&#39;请选择文件!&#39;);  
               return false;  
           }  
           get_filemd5sum(file)  
       }  
   </script>  
</body>
</html>
登录后复制

相关推荐:

怎么用ajax如何实现大文件上传的功能

JS和WebService大文件上传代码分享

php大文件上传失败该怎么办?

以上是html5大文件上传技术分享的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板