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大文件上传技术分享的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

什么是html h1标签?html h1标签使用方法的详细介绍

使用h5实现react拖拽排序组件的方法(附代码)

HTML5 canvas的绘制文本自动换行的示例代码

详解HTML5 录音遇到的坑

html如何修改日期样式

HTML5调用百度地图api获取当前位置并直接导航目的地的方法

h5怎么解决移动端滑动卡顿的问题

HTML5 canvas

让ie支持HTML5的方法

HTML5 canvas绘制爱心的方法示例

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




打赏

取消

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

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

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

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

评论

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