JS实现的文件拖拽上传功能示例


Posted in Javascript onMay 21, 2018

本文实例讲述了JS实现的文件拖拽上传功能。分享给大家供大家参考,具体如下:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>3water.com JS文件拖拽上传</title>
<style>
div{
 width: 300px;
 height: 300px;
 border:1px dashed #000;
 position:absolute;
 top: 50%;
 left: 50%;
 margin:-150px 0 0 -150px;
 text-align:center;
 font:20px/300px '微软雅黑';
 display:none;
}
</style>
<script>
 window.onload = function () {
  var oBox = document.getElementById('box');
  var oM = document.getElementById('m1');
  var timer = null;
  document.ondragover = function(){
   clearTimeout(timer);
   timer = setTimeout(function(){
    oBox.style.display = 'none';
   },200);
   oBox.style.display = 'block';
  };
  //进入子集的时候 会触发ondragover 频繁触发 不给ondrop机会
  oBox.ondragenter = function(){
   oBox.innerHTML = '请释放鼠标';
  };
  oBox.ondragover = function(){
   return false;
  };
  oBox.ondragleave = function(){
   oBox.innerHTML = '请将文件拖拽到此区域';
  };
  oBox.ondrop = function(ev){
   var oFile = ev.dataTransfer.files[0];
   var reader = new FileReader();
   //读取成功
   reader.onload = function(){
    console.log(reader);
   };
   reader.onloadstart = function(){
    alert('读取开始');
   };
   reader.onloadend = function(){
    alert('读取结束');
   };
   reader.onabort = function(){
    alert('中断');
   };
   reader.onerror = function(){
    alert('读取失败');
   };
   reader.onprogress = function(ev){
    var scale = ev.loaded/ev.total;
    if(scale>=0.5){
     alert(1);
     reader.abort();
    }
    oM.value = scale*100;
   };
   reader.readAsDataURL(oFile,'base64');
   return false;
  };
 };
</script>
</head>
<body>
<meter id="m1" value="0" min="0" max="100"></meter>
 <div id="box">请将文件拖拽到此区域</div>
</body>
</html>

使用http://tools.3water.com/code/HtmlJsRun在线运行测试效果如下:

JS实现的文件拖拽上传功能示例

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
图片之间的切换
Jun 26 Javascript
Javascript对象属性方法汇总
Nov 21 Javascript
通过伪协议解决父页面与iframe页面通信的问题
Apr 05 Javascript
Angularjs中UI Router全攻略
Jan 29 Javascript
JavaScript File分段上传
Mar 10 Javascript
AngularJS全局警告框实现方法示例
May 18 Javascript
JavaScript表单即时验证 验证不成功不能提交
Aug 31 Javascript
angular2 ng2 @input和@output理解及示例
Oct 10 Javascript
node.js利用socket.io实现多人在线匹配联机五子棋
May 31 Javascript
JavaScript箭头函数中的this详解
Jun 19 Javascript
使用p5.js临摹动态图形
Oct 23 Javascript
vue基于v-charts封装双向条形图的实现代码
Dec 09 Javascript
以v-model与promise两种方式实现vue弹窗组件
May 21 #Javascript
Vue二次封装axios为插件使用详解
May 21 #Javascript
详解vue的diff算法原理
May 20 #Javascript
详解使用vue-admin-template的优化历程
May 20 #Javascript
vuex进阶知识点巩固
May 20 #Javascript
简单的三步vuex入门
May 20 #Javascript
vue项目如何刷新当前页面的方法
May 18 #Javascript
You might like
destoon找回管理员密码的方法
2014/06/21 PHP
用正则表达式 动态创建/增加css style script 兼容IE firefox
2009/03/10 Javascript
CCPry JS类库 代码
2009/10/30 Javascript
JavaScript Event学习第二章 Event浏览器兼容性
2010/02/07 Javascript
Javascript 静态页面实现随机显示广告的办法
2010/11/17 Javascript
js中判断文本框是否为空的两种方法
2011/07/31 Javascript
在Linux上用forever实现Node.js项目自启动
2014/07/09 Javascript
JavaScript通过元素索引号删除数组中对应元素的方法
2015/03/18 Javascript
jQuery 监控键盘一段时间没输入
2016/04/22 Javascript
浅谈JS中String()与 .toString()的区别
2016/10/20 Javascript
Vue.js基础知识小结
2017/01/13 Javascript
在 Angular2 中实现自定义校验指令(确认密码)的方法
2017/01/23 Javascript
如何在Angular2中使用jQuery及其插件的方法
2017/02/09 Javascript
微信小程序页面传值实例分析
2017/04/19 Javascript
基于Vue过渡状态实例讲解
2017/09/14 Javascript
layer弹出层 iframe层去掉滚动条的实例代码
2018/08/17 Javascript
vue自定义指令之面板拖拽的实现
2019/04/14 Javascript
Vue在 Nuxt.js 中重定向 404 页面的方法
2019/04/23 Javascript
EasyUI 数据表格datagrid列自适应内容宽度的实现
2019/07/18 Javascript
.netcore+vue 实现压缩文件下载功能
2020/09/24 Javascript
[13:25]VP vs VICI (BO3)
2018/06/07 DOTA
在Python上基于Markov链生成伪随机文本的教程
2015/04/17 Python
python如何压缩新文件到已有ZIP文件
2018/03/14 Python
python获取程序执行文件路径的方法(推荐)
2018/04/26 Python
pygame游戏之旅 创建游戏窗口界面
2018/11/20 Python
python+opencv实现霍夫变换检测直线
2020/10/23 Python
Python OpenCV对本地视频文件进行分帧保存的实例
2019/01/08 Python
Python3 pandas 操作列表实例详解
2019/09/23 Python
Python restful框架接口开发实现
2020/04/13 Python
AC Lens:购买隐形眼镜
2017/02/26 全球购物
美国踏板车和轻便摩托车销售网站:Mega Motor Madness
2020/02/26 全球购物
土木工程应届生自荐信
2013/09/24 职场文书
服务标语大全
2014/06/18 职场文书
2019广播稿怎么写
2019/04/17 职场文书
Nginx反向代理配置的全过程记录
2021/06/22 Servers
使用CSS定位HTML元素的实现方法
2022/07/07 HTML / CSS