将下面的这些标签添加到您的HTML的标签中
<link href="./path/to/dropzone.min.css" rel="stylesheet"/>
<script src="./path/to/dropzone.js"></script>
新建一个div元素,然后通过如下 JavaScript 代码启用 dropzone(假设你使用了 jQuery插件):
1.CSS方式(加入class=”dropzone”插件自动初始化)
<form id="uploadForm" action="" class="dropzone">
<div class="fallback">
<input name="file" type="file" multiple="multiple"/>
</div>
<div class="dz-message">
点击或拖拽文件在此处上传缩略图
</div>
</form>
2.JS方式
<div id="uploadZone"></div>
<script>
$("#uploadZone").dropzone({
url: "/upload",
maxFiles: 10,
maxFilesize: 512,
acceptedFiles: ".png,.txt,.jpeg"
});
</script>
如果你没有使用 jQuery 框架,也可以这样来初始化:
<div id="uploadZone"></div>
<script>
var dropz = new Dropzone("#uploadZone", {
url: "/upload",
maxFiles: 10,
maxFilesize: 512,
acceptedFiles: ".png,.txt,.jpeg"
});
</script>
其中url是必须的值,指定文件上传处理URL。其他的值都是可选的,如果使用默认值的话可以省略。
此插件的特色就在于非常灵活,提供了许多可选项、事件等。下面分类介绍常用的配置项。
功能选项
<input>
元素的name属性,默认为file。如果你希望在一个事件发生时采取一些额外的操作,而不干扰 Dropzone 的默认行为,那么你应该通过添加事件监听器的办法对事件做出响应,而非重写默认事件函数。
重写默认事件函数的例子如下:
$(“#uploadZone”).dropzone({
addedfile: function() {
//TODO
}
});
如果你重写默认事件函数,该事件发生时插件默认采取的动作将被覆盖。大多数情况下你仅仅想在事件发生时添加自己的行为,那么应该使用on方法。
$("#uploadZone").dropzone({
init: function() {
this.on("addedfile", function(file) {
//TODO
});
}
});
uploadZone.on("addedfile", function(file) {
//TODO
});
以下事件接收 file 为第一个参数
totaluploadprogress:第一个参数为总上传进度,第二个参数为总字节数,第三个参数为总上传字节数。
例子
这里我使用上面的选项、事件等写了一个例子,供参考:
<div class="uploadZone"></div>
<script>
$(".uploadZone").dropzone({
url: "/upload",
addRemoveLinks: true,
dictRemoveLinks: "x",
dictCancelUpload: "x",
maxFiles: 10,
maxFilesize: 5,
acceptedFiles: ".js",
init: function() {
this.on("success", function(file) {
console.log("文件 " + file.name + "成功上传");
});
this.on("removedfile", function(file) {
console.log("文件 " + file.name + "被成功移除");
});
}
});
</script>
the end