http://www.renfei.org/blog/dropzone-js-introduction.html
是一个开源的 JavaScript 库,提供 AJAX 异步上传功能。
安装
下载 启用
可以新建一个
<div class="dropz"></div> <style> $(".dropz").dropzone({ url: "handle-upload.php", maxFiles: 10, maxFilesize: 512, acceptedFiles: ".js,.obj,.dae" }); </style>
其中
接收文件
Dropzone 并不含任何服务器端的支持和实现,利用 Dropzone 上传文件和利用下面基本的 HTML 表单对于服务器来说是一样的:
配置 Dropzone
此插件的特色就在于非常灵活,提供了许多可选项、事件等。下面分类介绍常用的配置项。
功能选项
post
,如果需要,可以改为<input>
元素的file
。null
,可以指定为一个数值,限制最多文件数量。
false
。如果设为image/*,application/pdf,.psd,.obj
false
。如果设为multiple
属性。{"custom-header": "value"}
false
。如果设为翻译选项
添加事件监听
注意:一般情况下你应该通过添加事件监听器的办法对事件做出响应,而非重写默认事件函数。重写默认事件函数的例子如下:
$(".dropz").dropzone({ addedfile: function() { // actions... } });
如果你重写默认事件函数,该事件发生时插件默认采取的动作将被覆盖。一般情况下你仅仅想在事件发生时添加自己的行为,那么应该这样写:
$(".dropz").dropzone({ init: function() { this.on("addedfile", function(file) { // actions... }); } });
常用事件
以下事件接收 file 为第一个参数
以下事件接收一个 file list 作为第一个参数(仅当
true
时才会发生)特殊事件
例子
这里我使用上面的选项、事件等写了一个例子,供参考:
外观
Dropzone 下载之后没有自带任何 CSS 样式(人家只有一个 js 文件嘛)。我觉得提供的 Demo 的外观设计就非常不错,可以供大家参考。由于作者没有给出这套样式,我也不直接提供 CSS 文件了,大家有兴趣的话可以去自行进行反向工程。