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 相关文章推荐
40款非常有用的 jQuery 插件推荐(系列一)
Dec 21 Javascript
javascript中setInterval的用法
Jul 19 Javascript
实例详解JSON数据格式及json格式数据域字符串相互转换
Jan 07 Javascript
微信小程序 教程之模块化
Oct 17 Javascript
AngularJS开发教程之控制器之间的通信方法分析
Dec 25 Javascript
JS获得一个对象的所有属性和方法实例
Feb 21 Javascript
Angular2利用组件与指令实现图片轮播组件
Mar 27 Javascript
利用node.js制作命令行工具方法教程(一)
Jun 22 Javascript
JS与CSS3实现图片响应鼠标移动放大效果示例
May 04 Javascript
基于vue实现web端超大数据量表格的卡顿解决
Apr 02 Javascript
JS学习笔记之原型链和利用原型实现继承详解
May 29 Javascript
JS代码简洁方式之函数方法详解
Jul 28 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
线路分流自动跳转代码;希望对大家有用!
2006/12/02 Javascript
用innerhtml提高页面打开速度的方法
2013/08/02 Javascript
javascript:void(0)的问题使用探讨
2014/04/10 Javascript
jquery ajax分页插件的简单实现
2016/01/27 Javascript
基于javascript实现表格的简单操作
2016/05/21 Javascript
BootStrap实现邮件列表的分页和模态框添加邮件的功能
2016/10/13 Javascript
jQuery通过ajax方法获取json数据不执行success的原因及解决方法
2016/10/15 Javascript
jQuery validate插件功能与用法详解
2016/12/15 Javascript
微信小程序 限制1M的瘦身技巧与方法详解
2017/01/06 Javascript
vue如何引用其他组件(css和js)
2017/04/13 Javascript
JS实现的按钮点击颜色切换功能示例
2017/10/19 Javascript
微信小程序wx.request实现后台数据交互功能分析
2017/11/25 Javascript
vue几个常用跨域处理方式介绍
2018/02/07 Javascript
nodejs微信扫码支付功能实现
2018/02/17 NodeJs
详解webpack import()动态加载模块踩坑
2018/07/17 Javascript
微信小程序indexOf的替换方法(推荐)
2020/01/14 Javascript
jQuery zTree如何改变指定节点文本样式
2020/10/16 jQuery
[38:38]完美世界DOTA2联赛PWL S3 access vs Rebirth 第二场 12.17
2020/12/18 DOTA
利用Python的Twisted框架实现webshell密码扫描器的教程
2015/04/16 Python
Python ValueError: invalid literal for int() with base 10 实用解决方法
2015/06/21 Python
python 全局变量的import机制介绍
2017/09/07 Python
浅谈Python实现贪心算法与活动安排问题
2017/12/19 Python
Python cookbook(数据结构与算法)对切片命名清除索引的方法
2018/03/13 Python
CentOS7下python3.7.0安装教程
2018/07/30 Python
在mac下查找python包存放路径site-packages的实现方法
2018/11/06 Python
python3获取控制台输入的数据的具体实例
2020/08/16 Python
谈谈python垃圾回收机制
2020/09/27 Python
Python高阶函数与装饰器函数的深入讲解
2020/11/10 Python
html5 worker 实例(一) 为什么测试不到效果
2013/06/24 HTML / CSS
英国文胸专家:AmpleBosom.com
2018/02/06 全球购物
大都会艺术博物馆商店:The Met Store
2018/06/22 全球购物
计算机求职自荐信范文
2014/04/19 职场文书
学雷锋的心得体会
2014/09/04 职场文书
工伤事故赔偿协议书范文
2014/09/24 职场文书
村党建工作汇报材料
2014/11/02 职场文书
入伍通知书
2015/04/23 职场文书