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 相关文章推荐
利用js制作html table分页示例(js实现分页)
Apr 25 Javascript
JAVASCRIPT代码编写俄罗斯方块网页版
Nov 26 Javascript
JavaScript时间操作之年月日星期级联操作
Jan 15 Javascript
js基于setTimeout与setInterval实现多线程
Jun 17 Javascript
jQuery Easyui快速入门教程
Aug 21 Javascript
原生js实现网易轮播图效果
Apr 10 Javascript
Bootstrap 下拉多选框插件Bootstrap Multiselect
Jan 22 Javascript
详解vue跨组件通信的几种方法
Jun 15 Javascript
Vue.js路由实现选项卡简单实例
Jul 24 Javascript
解析JS在获取当前月的最后一天遇到的坑
Aug 30 Javascript
Vue实现商品飞入购物车效果(电商项目)
Nov 26 Javascript
jQuery中getJSON跨域原理的深入讲解
Sep 02 jQuery
解析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
第十一节 重载 [11]
2006/10/09 PHP
你应该知道PHP浮点数知识
2015/05/13 PHP
一个完整的php文件上传类实例讲解
2015/10/27 PHP
PHP微信开发之根据用户回复关键词\位置返回附近信息
2016/06/24 PHP
jquery 1.3.2 IE8中的一点点的小问题解决方法
2009/07/10 Javascript
javascript去掉代码里面的注释
2015/07/24 Javascript
JavaScript中var关键字的使用详解
2015/08/14 Javascript
jQuery实现类似标签风格的导航菜单效果代码
2015/08/25 Javascript
jQuery+formdata实现上传进度特效遇到的问题
2016/02/24 Javascript
js前端导出Excel的方法
2017/11/01 Javascript
在vue中使用css modules替代scroped的方法
2018/03/10 Javascript
利用nodeJs anywhere搭建本地服务器环境的方法
2018/05/12 NodeJs
详解vue-cli官方脚手架配置
2018/07/20 Javascript
如何优雅的在一台vps(云主机)上面部署vue+mongodb+express项目
2019/01/20 Javascript
超详细动手搭建一个VuePress 站点及开启PWA与自动部署的方法
2019/01/27 Javascript
Vue keepAlive 数据缓存工具实现返回上一个页面浏览的位置
2019/05/10 Javascript
微信小程序如何自定义table组件
2019/06/29 Javascript
纯异步nodejs文件夹(目录)复制功能
2019/09/03 NodeJs
jquery 遍历hash操作示例【基于ajax交互】
2019/10/12 jQuery
[03:42]2018完美盛典-《加冕》
2018/12/16 DOTA
Python合并两个字典的常用方法与效率比较
2015/06/17 Python
Python 专题二 条件语句和循环语句的基础知识
2017/03/19 Python
Python利用Beautiful Soup模块修改内容方法示例
2017/03/27 Python
windows环境下tensorflow安装过程详解
2018/03/30 Python
Html5 Canvas实现图片标记、缩放、移动和保存历史状态功能 (附转换公式)
2020/03/18 HTML / CSS
一个精品风格的世界:Atterley
2019/05/01 全球购物
面试后的英文感谢信
2014/02/01 职场文书
八项规定整改方案
2014/02/21 职场文书
小班秋游活动方案
2014/02/22 职场文书
《鲁班和橹板》教学反思
2014/04/27 职场文书
最新优秀教师个人先进事迹材料
2014/05/06 职场文书
党员群众路线个人整改措施思想汇报
2014/10/12 职场文书
2015年大学生入党自荐书
2015/03/24 职场文书
奖学金发言稿(范文)
2019/08/21 职场文书
Python编程编写完善的命令行工具
2021/09/15 Python
教你快速构建一个基于nginx的web集群项目
2021/11/27 Servers