JavaScript 文件拖拽上传插件 dropzone.js 学习总结。

最近写了个拖拽上传的功能,用到了dropzone.js 很好用的东东,学的还不是很好,,先做一下总结,希望能帮到跟我一样刚用的童鞋们。

首先下载dropzone.js文件并添加到页面中即可。他需要jquery(如果你要用到jquery引入的话,如果纯js引入的就不需要了)我说的是jquery引入的


可以新建一个div元素,然后通过如下 JavaScript 代码启用 dropzone(如果你使用 jQuery):




js加载调用


jQuery(function($){
			try {
			  $(".dropzone").dropzone({
			    paramName: "pic", // The name that will be used to transfer the file
			    maxFilesize: 100, // MB
			   
				addRemoveLinks : true,
				dictDefaultMessage :
				' Drop files to upload \
				(or click) 
\ ' , dictResponseError: 'Error while uploading file!', previewTemplate: "
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
" }); } catch(e) { alert('Dropzone.js does not support older browsers!'); } });

这样是可以用了,但是有些默认设置我们想自己修改怎么办呢

此插件的特色就在于非常灵活,提供了许多可选项、事件等。下面分类介绍常用的配置项。

功能选项

url:最重要的参数,指明了文件提交到哪个页面。 method:默认为 post,如果需要,可以改为 putparamName:相当于 元素的 name属性,默认为 filemaxFilesize:最大文件大小,单位是 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 的默认行为,那么你应该通过添加事件监听器的办法对事件做出响应,而非重写默认事件函数

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

 $(".dropzone").dropzone({

addedfile:function(){

}

})


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



 $(".dropzone").dropzone({

init:function(){

this.on("addedfile",function(file){

})

}

})

常用事件

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

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

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

  • successmultiple
  • completemultiple
  • cancelmultiple

特殊事件

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

下面我引用一个别人的例子,等我自己学习的很好了会给大家更详细的介绍的




希望可以帮到大家。

你可能感兴趣的:(jquery,dropzone)