html5大文件上传技术分享


本文摘自PHP中文网,作者墨辰?R,侵删。

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

代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

<!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='width:500px;margin-top:20px'></progress

               <div style='margin-top:20px'

                   <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('read chunk nr', currentChunk + 1, 'of', 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('oops, something went wrong.'); 

           }; 

           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('fileinput') 

       uploadfile.onchange = function(e){ 

           var file = this.files[0]; 

            if(!file) { 

               alert('请选择文件!'); 

               return false; 

           

           get_filemd5sum(file) 

       

   </script

</body>

</html>

相关推荐:

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

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

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

以上就是html5大文件上传技术分享的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

HTML5实践-三步实现响应式设计的详细介绍

h5如何做出碎片式的图片切换

HTML5中一些可以优化的细节介绍

介绍HTML5+canvas调用手机拍照功能实现图片上传(下篇)

HTML5 canvas用来绘制弧形的代码实现

什么是h5页面

h5完成多图片上传的实例详解

使用HTML5/css3五步快速制作便签贴特效代码示例分享(图文)

input实现文字超出省略号(代码示例)

HTML5盒子模型的使用方法

更多相关阅读请进入《HTML5》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...