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 相关文章推荐
jQuery中文入门指南,翻译加实例,jQuery的起点教程
Jan 13 Javascript
善用事件代理,警惕闭包的性能陷阱。
Jan 20 Javascript
window.event快达到全浏览器支持了,以后使用就方便了
Nov 30 Javascript
IE下使用cloneNode注意事项分享
Nov 22 Javascript
js arguments对象应用介绍
Nov 28 Javascript
jquery图片放大功能简单实现
Aug 01 Javascript
javascript简单比较日期大小的方法
Jan 05 Javascript
实例讲解jquery中mouseleave和mouseout的区别
Feb 17 Javascript
微信小程序  action-sheet详解及实例代码
Nov 09 Javascript
JavaScript循环_动力节点Java学院整理
Jun 28 Javascript
AngularJS 中的数据源的循环输出
Oct 12 Javascript
vue中v-for循环选中点击的元素并对该元素添加样式操作
Jul 17 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
php smarty 二级分类代码和模版循环例子
2011/06/16 PHP
php递归函数中使用return的注意事项
2014/01/17 PHP
PHP会话处理的10个函数
2015/08/11 PHP
解决laravel 出现ajax请求419(unknown status)的问题
2019/09/03 PHP
精解window.setTimeout()&amp;window.setInterval()使用方式与参数传递问题!
2007/11/23 Javascript
关于jQuery的inArray 方法介绍
2011/10/08 Javascript
JavaScript编写点击查看大图的页面半透明遮罩层效果实例
2016/05/09 Javascript
IE8兼容Jquery.validate.js的问题
2016/12/01 Javascript
js实现年月日表单三级联动
2020/04/17 Javascript
基于jstree使用AJAX请求获取数据形成树
2017/08/29 Javascript
对于Javascript 执行上下文的全面了解
2017/09/05 Javascript
Vue 2.0双向绑定原理的实现方法
2019/10/23 Javascript
vue如何使用async、await实现同步请求
2019/12/09 Javascript
JS+CSS+HTML实现“代码雨”类似黑客帝国文字下落效果
2020/03/17 Javascript
vue-simple-uploader上传成功之后的response获取代码
2020/09/07 Javascript
jQuery实现电梯导航模块
2020/12/22 jQuery
使用简单工厂模式来进行Python的设计模式编程
2016/03/01 Python
微信跳一跳自动运行python脚本
2018/01/08 Python
python实现单向链表详解
2018/02/08 Python
python删除某个字符
2018/03/19 Python
Sanic框架应用部署方法详解
2018/07/18 Python
python元组的概念知识点
2019/11/19 Python
python二分法查找算法实现方法【递归与非递归】
2019/12/06 Python
CSS3只让背景图片旋转180度的实现示例
2021/03/09 HTML / CSS
VICHY薇姿美国官方网站:欧洲药房第一的抗衰老品牌
2017/11/22 全球购物
澳大利亚一站式数码相机商店:CameraPro
2020/03/09 全球购物
工作失职检讨书范文
2014/01/16 职场文书
经典英文广告词
2014/03/18 职场文书
歌唱比赛主持词
2014/03/18 职场文书
舞蹈教育学专业求职信
2014/06/29 职场文书
会员活动策划方案
2014/08/19 职场文书
2014年小学教师工作自我评价
2014/09/22 职场文书
2015年度村委会工作总结
2015/04/29 职场文书
2015法院个人工作总结范文
2015/05/25 职场文书
浅谈MySQL user权限表
2021/06/18 MySQL
Python利用Turtle绘制哆啦A梦和小猪佩奇
2022/04/04 Python