Dropzone的使用方法

DropzoneJS是一个提供文件拖拽上传并且提供图片预览的开源类库,
它是轻量级的,不依赖任何其他类库(如JQuery)并且高度可定制.

1.下载单独的 dropzone.js 并像下面这样在文件中引入:

<script src="./path/to/dropzone.js"></script>

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

<form action="/file-upload"
      class="dropzone"
      id="my-awesome-dropzone"></form>
<script>
var myDropzone = new Dropzone("div#myId", { url: "/file/post"});
</script>

下面是Dropzone的中文文档,我们可以下载案例
点击查看Drozone中文文档

案例

$("#dropz").dropzone({
        url: "index.php", //必须填写
        method:"post",  //也可用put
        paramName:"Filedata", //默认为file
        maxFiles:10,//一次性上传的文件数量上限
        maxFilesize: 20, //MB
        acceptedFiles: ".jpg,.gif,.png", //上传的类型
        previewsContainer:"#adds", //显示的容器
        parallelUploads: 3,
        dictMaxFilesExceeded: "您最多只能上传10个文件!",
        dictResponseError: '文件上传失败!',
        dictInvalidFileType: "你不能上传该类型文件,文件类型只能是*.jpg,*.gif,*.png。",
        dictFallbackMessage:"浏览器不受支持",
        dictFileTooBig:"文件过大上传文件最大支持.",
        previewTemplate: document.querySelector('#preview-template').innerHTML,//设置显示模板
        init:function(){
            this.on("addedfile", function(file) { 
            //上传文件时触发的事件
            });
            this.on("queuecomplete",function(file) {
                //上传完成后触发的方法
            });
            this.on("removedfile",function(file){
                //删除文件时触发的方法
                 });
            });
        }

    });

功能选项

url:最重要的参数,指明了文件提交到哪个页面。
method:默认为post,如果需要,可以改为put。
paramName:相当于元素的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:第一个参数为总上传进度,第二个参数为总字节数,第三个参数为总上传字节数。

**this.getAcceptedFiles().length 获取上传的总数
file.previewElement.appendChild 获取file中的节点
**

  • 18
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Dropzone是一个方便的JavaScript库,用于在Web应用程序中实现文件上传功能。下面是使用Dropzone的基本步骤和常用参数: 步骤: 1. 引入Dropzone库: ```html <script src="https://cdnjs.cloudflare.com/ajax/libs/dropzone/5.7.2/dropzone.min.js"></script> ``` 2. 创建一个表单元素,并添加一个具有唯一ID的CSS类,用于初始化Dropzone: ```html <form action="/upload" class="dropzone" id="myDropzone"></form> ``` 3. 初始化Dropzone: ```javascript Dropzone.autoDiscover = false; var myDropzone = new Dropzone("#myDropzone", { options }); ``` 参数: - `url`:上传文件的URL地址。 - `method`:上传文件的HTTP方法,默认为POST。 - `maxFilesize`:限制文件大小的最大值(单位为MB),超过该大小的文件将被拒绝上传。 - `acceptedFiles`:允许上传的文件类型,可以是具体的文件类型(例如:image/jpeg)或文件类型的MIME类型(例如:image/*)。 - `addRemoveLinks`:是否显示删除链接,允许用户删除已上传的文件。 - `autoProcessQueue`:是否自动处理上传队列,如果设置为false,则需要手动调用`myDropzone.processQueue()`来处理上传队列。 - `init`:一个回调函数,用于初始化Dropzone实例,可以在这个函数中监听Dropzone的各种事件。 这只是Dropzone可用参数的一小部分,还有其他许多参数和事件可以进一步定制和扩展Dropzone的功能。您可以参考Dropzone的官方文档(https://www.dropzonejs.com/)以及示例代码来了解更多详细信息和用法。 希望这些信息能帮助您使用Dropzone实现文件上传功能。如果有任何进一步的问题,请随时提问!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

warcello

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值