开发「bufpay.com 个人即时到账收款平台」 后台需要支持开发者的微信和支付宝二维码上传。

<p>
<button class="btn btn-primary" onClick="javascript:document.getElementById('fileupload').click();">批量上传微信/支付宝支付二维码</button>
<input style="display:none;" id="fileupload" type="file" name="file" accept="image/*" multiple>
</p>

原来的方式是点击 button 触发一个 隐藏的 file 的 onchange 事件,从而弹出文件选择框,选择文件。

但是有用户反馈直接拖动收款二维码进去会方便一些。于是,修改原代码,在 js 文件中添加

<p id="drop_area" onClick="javascript:document.getElementById('fileupload').click();">
<button class="btn btn-primary">批量上传微信/支付宝支付二维码</button>
<input style="display:none;" id="fileupload" type="file" name="file" accept="image/*" multiple>
</p>
var dp = document.getElementById('drop_area');
dp.addEventListener('dragover', function(e) {
e.stopPropagation();
e.preventDefault();
e.dataTransfer.dropEffect = 'copy';
});
dp.addEventListener("drop", function(e) {
e.stopPropagation();
e.preventDefault();
var files = e.dataTransfer.files;
// do something upload
});

把 button 的上一级 p 作为一个 drop area 添加监听 dragover 和 drop 事件,在 drop 事件里面对拖动的文件进行操作即可。

插播广告 ✧(≖ ◡ ≖✿)嘿嘿

纯 js 实现上传文件支持拖拽的更多相关文章

  1. jQuery插件之路(三)——文件上传(支持拖拽上传)

    好了,这次咱一改往日的作风,就不多说废话了,哈哈.先贴上源代码地址,点击获取.然后直接进入主题啦,当然,如果你觉得我有哪里写的不对或者欠妥的地方,欢迎留言指出.在附上一些代码之前,我们还是先来了解下, ...

  2. HTML5_纯JS实现上传文件显示文件大小,文件信息,上传进度_不使用JS库

    前台 html <input type="file" id="_netLogo" onchange="fileSelected();" ...

  3. 基于bootstrap的上传插件fileinput实现ajax异步上传功能(支持多文件上传预览拖拽)

    首先需要导入一些js和css文件 ? 1 2 3 4 5 6 <link href="__PUBLIC__/CSS/bootstrap.css" rel="exte ...

  4. js能否上传文件夹

    文件夹上传:从前端到后端 文件上传是 Web 开发肯定会碰到的问题,而文件夹上传则更加难缠.网上关于文件夹上传的资料多集中在前端,缺少对于后端的关注,然后讲某个后端框架文件上传的文章又不会涉及文件夹. ...

  5. 利用ajaxfileupload.js异步上传文件

    1.引入ajaxfileupload.js 2.html代码 <input type="file" id="enclosure" name="e ...

  6. js获取上传文件内容(未完待续)

    js 获取上传文件的字节数及内容 <div> 上传文件 : <input type="file" name = "file" id = &qu ...

  7. Atitit.js获取上传文件全路径

    Atitit.js获取上传文件全路径 1. 默认的value只能获取文件名..安全原因.. 1 2. Firefox浏览器的读取 1 3. Html5 的file api 2 4. 解决方法::使用a ...

  8. js获取上传文件内容

    js 获取上传文件的字节数及内容 <div> 上传文件 : <input type="file" name = "file" id = &qu ...

  9. js批量上传文件

    html代码: <input type="file" id='upload' name="upload" multiple="multiple& ...

随机推荐

  1. Keras 自适应Learning Rate (LearningRateScheduler)

    When training deep neural networks, it is often useful to reduce learning rate as the training progr ...

  2. js 捕捉回车键触发登录,并验证输入内容

    js 捕捉回车键触发登录,并验证输入内容 有时候我们会遇到 web 页面中捕捉按键,触发一些效果, 比如常见的回车键触发登录,并验证输入内容,下面会介绍,截图: 一.最简单的捕捉回车键:判断按下的是不 ...

  3. Exception in thread "main" java.lang.UnsatisfiedLinkError: no awt in java.library.path:

    Exception in thread "main" java.lang.UnsatisfiedLinkError: no awt in java.library.path: 这是 ...

  4. String对象内存分析

    Java中内存分析: 栈(Stack) :存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中). 堆(heap): ...

  5. google学习

    https://developers.google.com/machine-learning/crash-course/ https://developers.google.com/machine-l ...

  6. c# 设计模式 之:工厂模式之---工厂模式

    1.uml类图: 实现和依赖关系: 实现: SportFactory.JeepFactory.HatchbackFactory 实现 IFactory 接口 SportCar.JeepCar.Hatc ...

  7. css网页中设置背景图片的方法详解

    在css代码中设置背景图片的方法,包括背景图片.背景重复.背景固定.背景定位等   用css设置网页中的背景图片,主要有如下几个属性: 1,背景颜色 {">说明:参数取值和颜色属性一样 ...

  8. os 模块 模块与包的初始

    os模块是与操作系统交互的模块之前我们也用过os模块就是更改文件的名字的时候 我们如果用os求求文件夹是不行的  可以求文件  因为文件夹在python中最大就是4090个字节 所以你必须求出文件夹内 ...

  9. C++ 重载 重写 重定义

    重写:存在于类的继承,修饰符是virtual,函数的参数个数,顺序,类型,均相同. 重载:函数的参数列表,类型,顺序不相同. 重定义:对父类的函数进行屏蔽,参数列表可以不相同,没有virtual修饰

  10. MySQL 数据库--索引原理与慢查询优化

    索引的原理 本质都是:通过不断地缩小想要获取数据的范围来筛选出最终想要的结果,同时把随机的事件变成顺序的事件,也就是说,有了这种索引机制,我们可以总是用同一种查找方式来锁定数据. 索引的数据结构 b+ ...