Dropzone.js实现文件拖拽上传功能(附源码下载)


Posted in Javascript onNovember 22, 2016

dropzone.js是一个开源的JavaScript库,提供 AJAX 异步文件上传功能,支持拖拽文件、支持最大文件大小、支持设置文件类型、支持预览上传结果,不依赖jQuery库。

Dropzone.js实现文件拖拽上传功能(附源码下载)

效果演示      源码下载

使用Dropzone

我们可以建立一个正式的上传form表单,并且给表单一个.dropzone的class。

<form id="mydropzone" action="/upload.php" class="dropzone"></form>

就这样,Dropzone会自动找到.dropzone的表单form元素,并且通过action属性,上传到后台接收文件的程序,如upload.php,就像接受一个很普通的file input表单:

<input type="file" name="file" />

然后,在你的upload.php中写上传代码,Dropzone官网下载的只有js代码,没有后台的上传代码,不过,helloweba.com为您提供了php版的完整上传实例代码,欢迎下载源码。

接下来就是引入dropzone.js了。

<script src="dropzone.min.js"></script>

然后什么都不用做了,打开浏览器,测试拖拽上传效果。当然样式你可以自己写,也可以参照我们的实例代码。

还有一种情况,我们不希望上传的html中有form表单,那么好,我们只要在html中放置一个div#mydropzone

<div id="mydropzone" class="dropzone"></div>

然后,配置一下js调用:

var myDropzone = new Dropzone("div#mydropzone", { url: "upload.php"});

如果您使用的是jquery,那么jQuery版的可以这样调用:

$("#dropz").dropzone({ 
url: "upload.php" 
})

运行你的网页,是不是一样可以看到上传效果。

配置Dropzone

Dropzone的特色就在于非常灵活,提供了许多可选项、事件等。下面是Dropzone几个常用的配置项。

url:最重要的参数,指明了文件提交到哪个页面。

method:默认为post,如果需要,可以改为put。

paramName:相当于<input>元素的name属性,默认为file。

maxFilesize:最大文件大小,单位是 MB。

maxFiles:默认为null,可以指定为一个数值,限制最多文件数量。

addRemoveLinks:默认false。如果设为true,则会给文件添加一个删除链接。

acceptedFiles:指明允许上传的文件类型,格式是逗号分隔的 MIME type 或者扩展名。例如:image/*,application/pdf,.psd,.obj

uploadMultiple:指明是否允许 Dropzone 一次提交多个文件。默认为false。如果设为true,则相当于 HTML 表单添加multiple属性。

headers:如果设定,则会作为额外的 header 信息发送到服务器。例如:{"custom-header": "value"}

init:一个函数,在 Dropzone 初始化的时候调用,可以用来添加自己的事件监听器。

forceFallback:Fallback 是一种机制,当浏览器不支持此插件时,提供一个备选方案。默认为false。如果设为true,则强制 fallback。

fallback:一个函数,如果浏览器不支持此插件则调用。

以上所述是小编给大家介绍的Dropzone.js实现文件拖拽上传,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
优化 JavaScript 代码的方法小结
Jul 16 Javascript
javascript禁用Tab键脚本实例
Nov 22 Javascript
JS window对象的top、parent、opener含义介绍
Dec 03 Javascript
EasyUI闪屏EasyUI页面加载提示(原理+代码+效果图)
Feb 21 Javascript
jquery hover 不停闪动问题的解决方法(亦为stop()的使用)
Feb 10 Javascript
Angular.JS内置服务$http对数据库的增删改使用教程
May 07 Javascript
利用百度地图API获取当前位置信息的实例
Nov 06 Javascript
JS 实现缓存算法的示例(FIFO/LRU)
Mar 20 Javascript
微信小程序实现人脸检测功能
May 25 Javascript
JavaScript类的继承方法小结【组合继承分析】
Jul 11 Javascript
vue中,在本地缓存中读写数据的方法
Sep 21 Javascript
Bootstrap实现省市区三级联动(亲测可用)
Jul 26 Javascript
解析jQueryEasyUI的使用
Nov 22 #Javascript
详解jQuery插件开发方式
Nov 22 #Javascript
AngularJS中isolate scope的用法分析
Nov 22 #Javascript
详解js界面跳转与值传递
Nov 22 #Javascript
js实现界面向原生界面发消息并跳转功能
Nov 22 #Javascript
JavaScript面向对象分层思维全面解析
Nov 22 #Javascript
浅析location.href跨窗口调用函数
Nov 22 #Javascript
You might like
Apache, PHP在Windows 9x/NT下的安装与配置 (一)
2006/10/09 PHP
ajax缓存问题解决途径
2006/12/06 PHP
15种PHP Encoder的比较
2007/04/17 PHP
php生成静态页面的简单示例
2014/04/17 PHP
Javascript实例教程(19) 使用HoTMetal(5)
2006/12/23 Javascript
javascript concat数组累加 示例
2009/09/03 Javascript
jquery $(document).ready() 与window.onload的区别
2009/12/28 Javascript
JQuery 动画卷页 返回顶部 动画特效(兼容Chrome)
2010/02/15 Javascript
jQuery 锚点跳转滚动条平滑滚动一句话代码
2010/04/30 Javascript
extjs 3.31 TreeGrid实现静态页面加载json到TreeGrid里面
2013/04/02 Javascript
解析js中获得父窗口链接getParent方法以及各种打开窗口的方法
2013/06/19 Javascript
extJS中常用的4种Ajax异步提交方式
2014/03/07 Javascript
Jquery+asp.net后台数据传到前台js进行解析的方法
2014/05/11 Javascript
Python脚本后台运行的几种方式
2015/03/09 Javascript
jQuery控制文本框只能输入数字和字母及使用方法
2016/05/26 Javascript
如何防止INPUT按回车自动提交表单FORM
2016/12/06 Javascript
js实现hashtable的赋值、取值、遍历操作实例详解
2016/12/25 Javascript
[js高手之路]寄生组合式继承的优势详解
2017/08/28 Javascript
JS实现动态倒计时功能(天数、时、分、秒)
2019/12/12 Javascript
JS检测浏览器开发者工具是否打开的方法详解
2020/10/02 Javascript
[02:37]2018DOTA2亚洲邀请赛赛前采访-EG篇
2018/04/03 DOTA
python函数返回多个值的示例方法
2013/12/04 Python
Python实现爬取马云的微博功能示例
2019/02/16 Python
django 自定义过滤器的实现
2019/02/26 Python
python使用socket实现的传输demo示例【基于TCP协议】
2019/09/24 Python
Python银行系统实战源码
2019/10/25 Python
Python应用自动化部署工具Fabric原理及使用解析
2020/11/30 Python
elf彩妆英国官网:e.l.f. Cosmetics英国(美国平价彩妆品牌)
2017/11/02 全球购物
英国助听器购物网站:Hearing Direct
2018/08/21 全球购物
《棉鞋里的阳光》教学反思
2014/04/24 职场文书
师范类求职信
2014/06/21 职场文书
学生意外伤害赔偿协议书
2014/09/17 职场文书
领导个人查摆剖析材料
2014/10/29 职场文书
小学元宵节活动总结
2015/02/06 职场文书
大学生社会实践活动总结报告
2015/05/06 职场文书
浅谈Python响应式类库RxPy
2021/06/14 Python