xhr2

将图片拖拽到此

0%

上传

//拖拽上传开始

//-1.禁止浏览器打开文件行为

document.addEventListener("drop",function(e){ //拖离

e.preventDefault();

})

document.addEventListener("dragleave",function(e){ //拖后放

e.preventDefault();

})

document.addEventListener("dragenter",function(e){ //拖进

e.preventDefault();

})

document.addEventListener("dragover",function(e){ //拖来拖去

e.preventDefault();

})

//上传进度

var pro = document.getElementById('prouploadfile');

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

function clearpro(){

pro.value=0;

persent.innerHTML="0%";

}

//2.拖拽

var stopbutton = document.getElementById('stop');

var resultfile=""

var box = document.getElementById('drop_area'); //拖拽区域

box.addEventListener("drop",function(e){

var fileList = e.dataTransfer.files; //获取文件对象

console.log(fileList)

//检测是否是拖拽文件到页面的操作

if(fileList.length == 0){

return false;

}

//拖拉图片到浏览器,可以实现预览功能

//规定视频格式

//in_array

Array.prototype.S=String.fromCharCode(2);

Array.prototype.in_array=function(e){

var r=new RegExp(this.S+e+this.S);

return (r.test(this.S+this.join(this.S)+this.S));

};

var video_type=["video/mp4","video/ogg"];

//创建一个url连接,供src属性引用

var fileurl = window.URL.createObjectURL(fileList[0]);

if(fileList[0].type.indexOf('image') === 0){ //如果是图片

var str="";

document.getElementById('drop_area').innerHTML=str;

}else if(video_type.in_array(fileList[0].type)){ //如果是规定格式内的视频

var str="";

document.getElementById('drop_area').innerHTML=str;

}else{ //其他格式,输出文件名

//alert("不预览");

var str="文件名字:"+fileList[0].name;

document.getElementById('drop_area').innerHTML=str;

}

resultfile = fileList[0];

console.log(resultfile);

//切片计算

filesize= resultfile.size;

setsize=500*1024;

filecount = filesize/setsize;

//console.log(filecount)

//定义进度条

pro.max=parseInt(Math.ceil(filecount));

i =getCookie(resultfile.name);

i = (i!=null && i!="")?parseInt(i):0

if(Math.floor(filecount)

alert("已经完成");

pro.value=i+1;

persent.innerHTML="100%";

}else{

alert(i);

pro.value=i;

p=parseInt(i)*100/Math.ceil(filecount)

persent.innerHTML=parseInt(p)+"%";

}

},false);

//3.ajax上传

var stop=1;

function xhr2(){

if(stop==1){

return false;

}

if(resultfile==""){

alert("请选择文件")

return false;

}

i=getCookie(resultfile.name);

console.log(i)

i = (i!=null && i!="")?parseInt(i):0

if(Math.floor(filecount)

alert("已经完成");

return false;

}else{

//alert(i)

}

var xhr = new XMLHttpRequest();//第一步

//新建一个FormData对象

var formData = new FormData(); //++++++++++

//追加文件数据

//改变进度条

pro.value=i+1;

p=parseInt(i+1)*100/Math.ceil(filecount)

persent.innerHTML=parseInt(p)+"%";

//进度条

if((filesize-i*setsize)>setsize){

blobfile= resultfile.slice(i*setsize,(i+1)*setsize);

}else{

blobfile= resultfile.slice(i*setsize,filesize);

formData.append('lastone', Math.floor(filecount));

}

formData.append('file', blobfile);

//return false;

formData.append('blobname', i); //++++++++++

formData.append('filename', resultfile.name); //++++++++++

//post方式

xhr.open('POST', 'xhr2.php'); //第二步骤

//发送请求

xhr.send(formData); //第三步骤

stopbutton.innerHTML = "暂停"

//ajax返回

xhr.onreadystatechange = function(){ //第四步

if ( xhr.readyState == 4 && xhr.status == 200 ) {

console.log( xhr.responseText );

if(i

xhr2();

}else{

i=0;

}

}

};

//设置超时时间

xhr.timeout = 20000;

xhr.ontimeout = function(event){

alert('请求超时,网络拥堵!低于25K/s');

}

i=i+1;

setCookie(resultfile.name,i,365)

}

//设置cookie

function setCookie(c_name,value,expiredays)

{

var exdate=new Date()

exdate.setDate(exdate.getDate()+expiredays)

document.cookie=c_name+ "=" +escape(value)+

((expiredays==null) ? "" : ";expires="+exdate.toGMTString()+";path=/")

}

//获取cookie

function getCookie(c_name)

{

if (document.cookie.length>0)

{

c_start=document.cookie.indexOf(c_name + "=")

if (c_start!=-1)

{

c_start=c_start + c_name.length+1

c_end=document.cookie.indexOf(";",c_start)

if (c_end==-1) c_end=document.cookie.length

return unescape(document.cookie.substring(c_start,c_end))

}

}

return ""

}

function stopup(){

if(stop==1){

stop = 0

xhr2();

}else{

stop = 1

stopbutton.innerHTML = "继续"

}

}

html mp4断点播放,html5解决大文件断点续传相关推荐

  1. html5解决大文件断点续传6,解决html5大文件断点续传

    一.概述 所谓断点续传,其实只是指下载,也就是要从文件已经下载的地方开始继续下载.在以前版本的HTTP协议是不支持断点的,HTTP/1.1开始就支持了.一般断点下载时才用到Range和Content- ...

  2. HTML5实现大文件上传

    需求: 项目要支持大文件上传功能,经过讨论,初步将文件上传大小控制在20G内,因此自己需要在项目中进行文件上传部分的调整和配置,自己将大小都以20G来进行限制. PC端全平台支持,要求支持Window ...

  3. asp.net实现ftp上传代码(解决大文件上传问题)

    asp.net实现ftp上传代码(解决大文件上传问题) 参考文章: (1)asp.net实现ftp上传代码(解决大文件上传问题) (2)https://www.cnblogs.com/LYunF/ar ...

  4. 文件上传控件-如何上传文件-大文件断点续传

    需求: 项目要支持大文件上传功能,经过讨论,初步将文件上传大小控制在20G内,因此自己需要在项目中进行文件上传部分的调整和配置,自己将大小都以20G来进行限制. PC端全平台支持,要求支持Window ...

  5. java 开源 断点续传,全平台大文件断点续传上传技术 ( 开源项目 Stream )

    Stream 上传插件介绍 Stream 这个项目主要是为了解决大文件上传, 本程序只是它的一个 Perl 后端的实现. 项目网站是: http://www.twinkling.cn 原始地址是: h ...

  6. iOS开发之网络编程--使用NSURLConnection实现大文件断点续传下载

    前言:iOS开发之网络编程--使用NSURLConnection实现大文件断点续传下载是在前篇iOS开发之网络编程--使用NSURLConnection实现大文件下载的基础上进行    断点续传的设置 ...

  7. 精品分享:基于 SpringBoot + Vue 开发的云盘系统(含大文件断点续传剖析)

    引言 作为开发人员,我们经常需要存储和下载文件,为了使用方便,通常都会将文件存储在云端,市面上使用率最高的云端存储莫过于百度网盘了,但使用别人的东西难免会受到各种各样的限制,必须花钱才会享受到更好的服 ...

  8. 多线程大文件断点续传和流媒体的处理方法

    2019独角兽企业重金招聘Python工程师标准>>> 在使用Squid做反向代理的CDN节点时.多线程大文件断点续传和流媒体的处理是怎么样啦.前些日子花了点时间研究了一下. 在Sq ...

  9. 【vue】 前端 基于 vue-simple-uploader 实现大文件断点续传和分片上传

    文章目录 一.前言 二.后端部分 新建Maven 项目 后端 pom.xml 配置文件 application.yml HttpStatus.java AjaxResult.java CommonCo ...

  10. Html5大文件断点续传实现方法

    之前仿造uploadify写了一个HTML5版的文件上传插件,没看过的朋友可以点此先看一下~得到了不少朋友的好评,我自己也用在了项目中,不论是用户头像上传,还是各种媒体文件的上传,以及各种个性的业务需 ...

最新文章

  1. 09-LearnTheArchitecture-MemoryManagement
  2. linux轻量级进程LWP
  3. 妈妈花3万给9岁儿子报编程课 网友:全是忽悠!
  4. Javascript 正则表达式校验数字
  5. matlab使用笔记(一)——matlab语言中if、for语句与C语言中的差别
  6. 基于Pytorch的YoLoV4模型代码及作品欣赏
  7. 【Android】高德地图从经纬度获得地址字符串
  8. 华为x6000刀箱和机架服务器RAID配置和超线程关闭
  9. C++primer Plus课本代码(第11章)
  10. 青龙面板安装搭建详细教程
  11. hdoj-1869 六度分离
  12. docker 创建 Carte 服务
  13. [ORACLE] ORA-00054 错误的解决方案
  14. 遥控小车(基于TCP/IP)
  15. 研究生看文献时如何写读书笔记?
  16. 阿里云互动课堂解决方案助力淘宝教育,打造普惠教育平台
  17. HTML中option和input的区别,option
  18. 正则表达式匹配——《剑指offer》
  19. 知识付费还是原来的知识付费吗?
  20. 颜色科学与计算机测配色 百度云,2004_01颜色科学与计算机测色配色实用技术_11196950.pdf...

热门文章

  1. npm jdf压缩并上传静态文件到服务器
  2. xubuntu12.04配置
  3. vs将项目发布到服务器,vs2010将项目发布到远程服务器上
  4. 芯片封装形式(网上到处找的)
  5. 树莓派学习笔记——串口与摄像头
  6. Unity3D基础数学向量
  7. oracle数据库表的一些基本处理
  8. React 备忘录 v16
  9. 如何去除Matlab里面的ans?
  10. Windows权限维持方法