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 相关文章推荐
使用自定义setTimeout和setInterval使之可以传递参数和对象参数
Apr 24 Javascript
Jquery下:nth-child(an+b)的使用注意
May 28 Javascript
JS判定是否原生方法
Jul 22 Javascript
判定是否原生方法的JS代码
Nov 12 Javascript
深入理解javascript严格模式(Strict Mode)
Nov 28 Javascript
javascript实现3D切换焦点图
Oct 16 Javascript
IE8利用自带的setCapture和releaseCapture解决iframe的拖拽事件方法
Oct 25 Javascript
JavaScript基于replace+正则实现ES6的字符串模版功能
Apr 25 Javascript
jQuery滑动到底部加载下一页数据的实例代码
May 22 jQuery
jquery实现图片放大点击切换
Jun 06 jQuery
详解React Native网络请求fetch简单封装
Aug 10 Javascript
vue el-table实现行内编辑功能
Dec 11 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
POSIX 风格和兼容 Perl 风格两种正则表达式主要函数的类比(preg_match, preg_replace, ereg, ereg_replace)
2010/10/12 PHP
php中生成随机密码的自定义函数代码
2013/10/21 PHP
php实现判断访问来路是否为搜索引擎机器人的方法
2015/04/15 PHP
php实现求相对时间函数
2015/06/15 PHP
PHP二维数组去重算法
2016/12/17 PHP
filters.revealTrans.Transition使用方法小结
2010/08/19 Javascript
jquery ajax例子返回值详解
2012/09/11 Javascript
javascript的回调函数应用示例
2014/02/20 Javascript
js+css实现的圆角边框TAB选项卡滑动门代码分享(2款)
2015/08/26 Javascript
最简单纯JavaScript实现Tab标签页切换的方式(推荐)
2016/07/25 Javascript
javascript 小数乘法结果错误的处理方法
2016/07/28 Javascript
Javascript发送AJAX请求实例代码
2016/08/21 Javascript
正则 js分转元带千分符号详解
2017/03/08 Javascript
微信小程序tabBar底部导航中文注解api详解
2017/08/16 Javascript
React如何利用相对于根目录进行引用组件详解
2017/10/09 Javascript
如何用webpack4.0撸单页/多页脚手架 (jquery, react, vue, typescript)
2019/06/18 jQuery
vue路由传参三种基本方式详解
2019/12/09 Javascript
微信小程序使用 vant Dialog组件的正确方式
2020/02/21 Javascript
JavaScript自定义超时API代码实例
2020/04/30 Javascript
基于Element封装一个表格组件tableList的使用方法
2020/06/29 Javascript
vue Cli 环境删除与重装教程 - 版本文档
2020/09/11 Javascript
[02:24]DOTA2亚洲邀请赛 NAVI战队出场宣传片
2015/02/07 DOTA
win7上python2.7连接mysql数据库的方法
2017/01/14 Python
Python3.5常见内置方法参数用法实例详解
2019/04/29 Python
python实现对象列表根据某个属性排序的方法详解
2019/06/11 Python
Pytorch保存模型用于测试和用于继续训练的区别详解
2020/01/10 Python
关于初始种子自动选取的区域生长实例(python+opencv)
2020/01/16 Python
使用 tf.nn.dynamic_rnn 展开时间维度方式
2020/01/21 Python
paramiko使用tail实时获取服务器的日志输出详解
2020/12/06 Python
Python爬虫模拟登陆哔哩哔哩(bilibili)并突破点选验证码功能
2020/12/21 Python
常务副县长“四风”个人对照检查材料思想汇报
2014/10/02 职场文书
2015年社会治安综合治理工作总结
2015/04/10 职场文书
《别在吃苦的年纪选择安逸》读后感3篇
2019/11/30 职场文书
golang elasticsearch Client的使用详解
2021/05/05 Golang
java设计模式--原型模式详解
2021/07/21 Java/Android
mysql脏页是什么
2021/07/26 MySQL