知识 分享 互助 懒人建站

    懒人建站专注于网页素材下载,提供网站模板、网页设计、ps素材、图片素材等,服务于【个人站长】【网页设计师】和【web开发从业者】的代码素材与设计素材网站。

    懒人建站提供网页素材下载、网站模板
    知识 分享 互助!

    文件拖拽上传插件dropzone.js

    作者:速博娱乐是什么 来源:郑州网站设计 2016-11-09 人气:
    文件拖拽上传插件dropzone.js,提供 AJAX 异步文件上传功能,支持拖拽文件上传、支持最大文件大小、支持设置文件类型、支持预览上传结果,不依赖jQuery库。

    文件拖拽上传插件dropzone.js,提供 AJAX 异步文件上传功能,支持拖拽文件上传、支持最大文件大小、支持设置文件类型、支持预览上传结果,不依赖jQuery库。

    文件拖拽上传插件dropzone.js的使用

    建立一个正式的上传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:一个函数,如果浏览器不支持此插件则调用。

    翻译选项

    • dictDefaultMessage:没有任何文件被添加的时候的提示文本。

    • dictFallbackMessage:Fallback 情况下的提示文本。

    • dictInvalidInputType:文件类型被拒绝时的提示文本。

    • dictFileTooBig:文件大小过大时的提示文本。

    • dictCancelUpload:取消上传链接的文本。

    • dictCancelUploadConfirmation:取消上传确认信息的文本。

    • dictRemoveFile:移除文件链接的文本。

    • dictMaxFilesExceeded:超过最大文件数量的提示文本。

    添加事件监听

    如果你希望在一个事件发生时采取一些额外的操作,而不干扰 Dropzone 的默认行为,那么你应该通过添加事件监听器的办法对事件做出响应,而非重写默认事件函数。

    重写默认事件函数的例子如下:

    $("#dropz").dropzone({
        addedfile: function() {
            // actions...
        }
    });

    如果你重写默认事件函数,该事件发生时插件默认采取的动作将被覆盖。大多数情况下你仅仅想在事件发生时添加自己的行为,那么应该使用on方法。

    jQuery 版本:

    $("#dropz").dropzone({
        init: function() {
            this.on("addedfile", function(file) {
                // actions...
            });
        }
    });

    非 jQuery 版本:

    dropz.on("addedfile", function(file) {
        // actions...
    });

    常用事件

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

    • addedfile:添加了一个文件时发生。

    • removedfile:一个文件被移除时发生。你可以监听这个事件并手动从服务器删除这个文件。

    • uploadprogress:上传时按一定间隔发生这个事件。第二个参数为一个整数,表示进度,从 0 到 100。第三个参数是一个整数,表示发送到服务器的字节数。当一个上传结束时,Dropzone 保证会把进度设为 100。注意:这个函数可能被以同一个进度调用多次。

    • success:文件成功上传之后发生,第二个参数为服务器响应。

    • complete:当文件上传成功或失败之后发生。

    • canceled:当文件在上传时被取消的时候发生。

    • maxfilesreached:当文件数量达到最大时发生。

    • maxfilesexceeded:当文件数量超过限制时发生。

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

    • successmultiple

    • completemultiple

    • cancelmultiple

    特殊事件

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

    例子

    这里我使用上面的选项、事件等写了一个例子,供参考:

    <div class="dropz"></div>
    <script>
        $(".dropz").dropzone({
            url: "handle-upload.php",
            addRemoveLinks: true,
            dictRemoveLinks: "x",
            dictCancelUpload: "x",
            maxFiles: 10,
            maxFilesize: 5,
            acceptedFiles: ".js",
            init: function() {
                this.on("success", function(file) {
                    console.log("File " + file.name + "uploaded");
                });
                this.on("removedfile", function(file) {
                    console.log("File " + file.name + "removed");
                });
            }
        });
    </script>

    外观

    Dropzone 下载之后没有自带任何 CSS 样式(人家只有一个 js 文件嘛)。我觉得官网提供的 Demo 的外观设计就非常不错,可以供大家参考。

    其他教程

    Dropzone 的作者在插件的 GitHub Wiki 页面上提供了很多额外教程,非常好,也推荐大家看一看。

    这里我只翻译一部分我觉得常用的教程的标题:

    1. 如何显示服务器返回的错误信息?

    2. 如何在所有文件上传完毕时得到通知?

    3. 如何显示出已经保存在服务器上的文件?

    4. 自己实现删除文件时的提示功能

    5. 为文件提供自定义缩略图

    6. 点击一个按钮再上传所有文件

    7. 点击一个按钮删除所有文件

    8. 把 Dropzone 放到一个已存在的表单中

    更多有关Dropzone的信息请参考官网:http://sbylssm.985sunbet.com/
    原文:http://sbylssm.985sunbet.com/view-blog-393.html


    ↓ 查看全文

    文件拖拽上传插件dropzone.js由懒人建站收集整理,您可以自由传播,请主动带上本文链接

    懒人建站就是免费分享,觉得有用就多来支持一下,没有能帮到您,懒人也只能表示遗憾,希望有一天能帮到您。

    文件拖拽上传插件dropzone.js-最新评论

    网站地图 凯斯娱乐网 宝马会娱乐官网555
    澳门太阳城娱乐场 菲律宾申博管理网 申博138体育 申博138体育在线
    胜天娱乐老虎机登陆 新浪爱彩 新太阳城娱乐官方网站 环亚娱乐ag平台登入
    宝马会娱乐网址 欧华线上娱乐 速博娱乐是什么 皇城国际备用网址
    欧华线上娱乐 中原娱乐bc2013 菲彩娱乐 新世纪娱乐澳门
    22sbib.com DC938.COM 222xsb.com 989sj.com 616jbs.com
    22sbsun.com 987cw.com S618U.COM XSB1111.COM 777sbsg.com
    787sunbet.com 982XTD.COM XSB718.COM S618M.COM 187PT.COM
    157PT.COM 99sbsun.com 985ib.com 333BBIN.COM 176sun.com