DropZone.js入门

转载 2015年11月21日 15:55:53

1.什么时候Dropzone.js?
dropzone.js 是一个开源的 JavaScript 库,提供 AJAX 异步上传功能。
2. 安装
直接下载dropzone.js文件并添加到页面中即可。

<script src="./path/to/dropzone.js"></script>
  1. 下载地址
    http://www.dropzonejs.com/

4.用法
使用dropzone的典型方式是通过创建一个 class 属性中包含 dropzone 的form 表单元素 :

<form action="/file-upload"
      class="dropzone"
      id="my-awesome-dropzone">
</form>

Dropzone将查找所有的 class 属性中包含 dropzone 的表单元素, 的表单元素自动地把自己加入到表单元素上,并且拖拽进的这些上传文件将被发送到 action 这个特殊的参数.
也可以新建一个div元素,然后通过一些 JavaScript 代码启用 dropzone。例如,使用 jQuery 初始化的方法如下:

<div class="dropz"></div>
<style>
    $(".dropz").dropzone({
        url: "#",
        maxFiles: 10,
        maxFilesize: 512,
        acceptedFiles: ".js,.obj,.dae"
    });
</style>
  1. 服务器端实现
    Dropzone 并不提供服务器端实现的处理文件,但是文件的方式都是上传就等于像这样简单的文件上传表单:
<form action="" method="post" enctype="multipart/form-data">
  <input type="file" name="file" />
</form>

6.例子

<script>
    //Dropzone的初始化,myDropzone为form的id
        Dropzone.options.myDropzone = {

            //指定上传图片的路径
            url: "@Url.Action('BatchUpload', 'PhotoUpload')",

            //添加上传取消和删除预览图片的链接,默认不添加
            addRemoveLinks: true,

            //关闭自动上传功能,默认会true会自动上传
            //也就是添加一张图片向服务器发送一次请求
            autoProcessQueue: false,

            //允许上传多个照片
            uploadMultiple: true,

            //每次上传的最多文件数,经测试默认为2,坑啊
            //记得修改web.config 限制上传文件大小的节
            parallelUploads: 100,

            init: function () {
                var submitButton = document.querySelector("#submit-all")
                myDropzone = this; // closure

                //为上传按钮添加点击事件
                submitButton.addEventListener("click", function () {
                    //手动上传所有图片
                    myDropzone.processQueue();
                });

                //当添加图片后的事件,上传按钮恢复可用
                this.on("addedfile", function () {
                    $("#submit-all").removeAttr("disabled");
                });

                //当上传完成后的事件,接受的数据为JSON格式
                this.on("complete", function (data) {
                    if (this.getUploadingFiles().length === 0 && this.getQueuedFiles().length === 0) {
                        var res = eval('(' + data.xhr.responseText + ')');
                        var msg;
                        if (res.Result) {
                            msg = "恭喜,已成功上传" + res.Count + "张照片!";
                        }
                        else {
                            msg = "上传失败,失败的原因是:" + res.Message;
                        }
                        $("#message").text(msg);
                        $("#dialog").dialog("open");
                    }
                });

                //删除图片的事件,当上传的图片为空时,使上传按钮不可用状态
                this.on("removedfile", function () {
                    if (this.getAcceptedFiles().length === 0) {
                        $("#submit-all").attr("disabled", true);
                    }
                });
            }
        };
 </script>

**

配置 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:一个函数,如果浏览器不支持此插件则调用。

翻译选项

dictDefaultMessage:没有任何文件被添加的时候的提示文本。
dictFallbackMessage:Fallback 情况下的提示文本。
dictInvalidInputType:文件类型被拒绝时的提示文本。
dictFileTooBig:文件大小过大时的提示文本。
dictCancelUpload:取消上传链接的文本。
dictCancelUploadConfirmation:取消上传确认信息的文本。
dictRemoveFile:移除文件链接的文本。
dictMaxFilesExceeded:超过最大文件数量的提示文本。

常用事件

以下事件接收 file 为第一个参数

addedfile:添加了一个文件时发生。
removedfile:一个文件被移除时发生。你可以监听这个事件并手动从服务器删除这个文件。
uploadprogress:上传时按一定间隔发生这个事件。第二个参数为一个整数,表示进度,从 0 到 100。第三个参数是一个整数,表示发送到服务器的字节数。当一个上传结束时,Dropzone 保证会把进度设为 100。注意:这个函数可能被以同一个进度调用多次。
success:文件成功上传之后发生,第二个参数为服务器响应。
complete:当文件上传成功或失败之后发生。
canceled:当文件在上传时被取消的时候发生。
maxfilesreached:当文件数量达到最大时发生。
maxfilesexceeded:当文件数量超过限制时发生。

以下事件接收一个 file list 作为第一个参数(仅当uploadMultiple被设为true时才会发生)

successmultiple
completemultiple
cancelmultiple

特殊事件

totaluploadprogress:第一个参数为总上传进度,第二个参数为总字节数,第三个参数为总上传字节数。

Dropzone的使用方法

DropzoneJS是一个提供文件拖拽上传并且提供图片预览的开源类库, 它是轻量级的,不依赖任何其他类库(如JQuery)并且高度可定制.1.下载单独的 dropzone.js 并像下面这样在文件中...
  • shao508
  • shao508
  • 2015年07月24日 11:47
  • 19283

dropZone.js使用

这几天,接触到这个拖动上传文件的js,上传的效果很棒,于是乎,上网找了很多使用教程,包括官方文档,看了似懂非懂,结合自己的项目,也慢慢搞出来了!...
  • lanwithyu
  • lanwithyu
  • 2017年07月19日 11:19
  • 1911

dropzone的使用方法

http://www.renfei.org/blog/dropzone-js-introduction.html dropzone.js 是一个开源的 JavaScript 库,提供 A...
  • yangxujia
  • yangxujia
  • 2014年07月03日 17:09
  • 12835

使用Dropzone上传图片及回显示例

一、图片上传所涉及到的问题 1、HTML页面中引入这么一段代码 ...
  • u010834071
  • u010834071
  • 2015年07月24日 11:27
  • 14553

dropzone.js 实现拖拽上传文件

  • 2015年10月15日 15:04
  • 41KB
  • 下载

js dropzone的使用方法

这是一个js插件,就是拖拽文件,上传到服务器,这个插件想来,大家都非常熟悉了,这里就不多说了。 文章链接地址: http://blog.csdn.net/yangxujia/article/det...
  • JimTrency
  • JimTrency
  • 2017年04月10日 15:50
  • 835

FineUploader文件/图片和form表单参数一起上传,从入门到精通教程

这里推荐两篇博客供入门 点击打开链接  FineUploader+struts2+手动点击提交,若报缺少id="qq-template"的错,可以参照我下文更改。 点击打开链接  FineUploa...
  • wabiaozia
  • wabiaozia
  • 2016年09月23日 17:27
  • 6856

C#使用Dropzone.js上传图片

就像官网文档说的那样。dropzone.js可以单独使用,也可以放在已有的表单中。但在表单提交的时候,如果dropzone里面的文件没有变化,调用Dropzone.processQueue()是无法提...
  • huangguilin1995
  • huangguilin1995
  • 2017年08月08日 22:13
  • 239

springmvc带文件上传的form表单提交,用 jquery的ajaxfileupload或使用dropzone上传图文详解

方法一和方法二处理思路一致,分两步提交:第一步 提交图片到文件服务器,并返回图片所在文件服务器的地址如:xxx/aaa.jpg,把文件地址(xxx/aaa.jpg)放到页面隐藏域。.第二步 提交表单 ...
  • wabiaozia
  • wabiaozia
  • 2015年12月08日 17:43
  • 20216

Dropzone应用

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和...
  • gentleyu1994
  • gentleyu1994
  • 2015年12月15日 16:12
  • 1606
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:DropZone.js入门
举报原因:
原因补充:

(最多只允许输入30个字)