前端之HTML利用XMLHttpRequest()和FormData()进行大文件分段上传

Posted dongxixi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前端之HTML利用XMLHttpRequest()和FormData()进行大文件分段上传相关的知识,希望对你有一定的参考价值。

 

用于网页向后端上传大文件

 

### 前端代码
<
body> <input type="file" name="video" id="file" /> <input type="button" class="btn btn-info" id="sub" value="提交"> <script> $("#sub").on("click",selfile()) #当提交按钮被点击时触发上传 function selfile() const LENGTH = 1024 * 1024 * 10;//每次上传的大小 var file = document.getElementsByName(video)[0].files[0];//文件对象 var filename=document.getElementsByName(video)[0].files[0].name; var totalSize = file.size;//文件总大小 var start = 0;//每次上传的开始字节 var end = start + LENGTH;//每次上传的结尾字节 var fd = null;//创建表单数据对象 var blob = null;//二进制对象 var xhr = null;//xhr对象 while(start < totalSize) fd = new FormData();//每一次需要重新创建 xhr = new XMLHttpRequest();//需要每次创建并设置参数 xhr.open(POST,/qqq/,false); blob = file.slice(start,end);//根据长度截取每次需要上传的数据 fd.append(file_data,blob);//添加数据到fd对象中 fd.append(filename,filename); //获取文件的名称 fd.append("file_size",totalSize); xhr.send(fd);//将fd数据上传 //重新设置开始和结尾 start = end; end = start + LENGTH; </script> </body>

 

##python后端路由视图函数代码:

def qqq(request):
        file_path = "c:aa.txt"
        with open(file_path,"ab") as f:
            for line in request.FILES.get("file_data"):
                f.write(line)

 

欢迎来搂~~~

 

以上是关于前端之HTML利用XMLHttpRequest()和FormData()进行大文件分段上传的主要内容,如果未能解决你的问题,请参考以下文章

前端基础之AJAX

前端必会的 HTML+CSS 常用技巧 之 虚线的实现方式

前端必会的 HTML+CSS 常用技巧 之 虚线的实现方式

前端必会的 HTML+CSS 常用技巧 之 虚线的特殊实现方式

前端知识点-jsonp csrf

前端阅读——《活用PHPMySQL建构Web世界》摘记之设计技巧