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匿名函数
Nov 25 Javascript
使用jQuery在移动页面上添加按钮和给按钮添加图标
Dec 04 Javascript
js闭包引起的事件注册问题介绍
Mar 29 Javascript
Bootstrap被封装的弹层
Jul 20 Javascript
手机端 HTML5使用photoswipe.js仿微信朋友圈图片放大效果
Aug 25 Javascript
详解基于Vue+Koa的pm2配置
Oct 24 Javascript
jQuery zTree 异步加载添加子节点重复问题
Nov 29 jQuery
详解在Angular4中使用ng2-baidu-map的方法
Jun 19 Javascript
JS实现简单日历特效
Jan 03 Javascript
从0搭建vue-cli4脚手架
Jun 17 Javascript
浅谈js中的attributes和Attribute的用法与区别
Jul 16 Javascript
JavaScript ES 模块的使用
Nov 12 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
人尽可用的Windows技巧小贴士之下篇
2007/03/22 PHP
php 操作调试的方法
2012/07/12 PHP
PHP实现文件下载详解
2014/11/27 PHP
如何使用微信公众平台开发模式实现多客服
2016/01/06 PHP
Yii2实现增删改查后留在当前页的方法详解
2017/01/13 PHP
理解JavaScript中的事件
2006/09/23 Javascript
JS 事件绑定函数代码
2010/04/28 Javascript
JavaScript 操作table,可以新增行和列并且隔一行换背景色代码分享
2013/07/05 Javascript
jquery处理json对象
2014/11/03 Javascript
动态加载jQuery的方法
2015/06/16 Javascript
JS 在数组指定位置插入/删除数据的方法
2017/01/12 Javascript
JS获取字符对应的ASCII码实例
2017/09/10 Javascript
详解vue-cli下ESlint 配置说明
2018/09/03 Javascript
vue路由对不同界面进行传参及跳转的总结
2019/04/20 Javascript
[05:29]2014DOTA2国际邀请赛 赛后专访:LGDNewbee顺利过关
2014/07/13 DOTA
python使用Tkinter显示网络图片的方法
2015/04/24 Python
python中string模块各属性以及函数的用法介绍
2016/05/30 Python
Django Admin 实现外键过滤的方法
2017/09/29 Python
VSCode Python开发环境配置的详细步骤
2019/02/22 Python
基于Django静态资源部署404的解决方法
2019/07/28 Python
Pytorch的mean和std调查实例
2020/01/02 Python
Python创建空列表的字典2种方法详解
2020/02/13 Python
python 追踪except信息方式
2020/04/25 Python
python 获取剪切板内容的两种方法
2020/11/28 Python
科颜氏英国官网:Kiehl’s英国
2019/11/20 全球购物
工作人员思想汇报
2014/01/09 职场文书
大学军训通讯稿
2014/01/13 职场文书
2014爱耳日宣传教育活动总结
2014/03/09 职场文书
《歌唱二小放牛郎》教学反思
2014/04/19 职场文书
党员学习正风肃纪思想汇报
2014/09/12 职场文书
医生见习报告范文
2014/11/03 职场文书
慰问信格式
2015/02/14 职场文书
大学生军训感言
2015/08/01 职场文书
Python多个MP4合成视频的实现方法
2021/07/16 Python
一条 SQL 语句执行过程
2022/03/17 MySQL
Python中time标准库的使用教程
2022/04/13 Python