插件暴露给用户可以设置的参数

插件构成

声明一个全局对象qq,在对象上封装几个方法,类似JQUERY的方法
qq.extend 合并对象属性,类似$.extend()
qq.indexOf 获取元素索引
qq.getUniqueId
qq.ie--qq.safari--qq.chrome--qq.firefox--qq.windows
qq.attach 事件绑定
qq.detach 解除事件绑定
qq.preventDefault 组织浏览器磨人行为
qq.insertBefore 插入元素
qq.remove
qq.contains
qq.toElement
qq.css
qq.hasClass
qq.addClass
qq.removeClass
qq.setText
qq.children
qq.getByClass
qq.obj2url 组合请求地址
 
qq.FileUploaderBasic    基本属性和外接方法
 
qq.FileUploaderBasic.prototype---文件上传插件的原型
    setParams
    getInProgress
    _createUploadButton--创建上传按钮,包括上传按钮属性,事件
    _createUploadHandler--上传处理程序
    _preventLeaveInProgress
    _onSubmit
    _onProgress
    _onComplete
    _onCancel
    _onUpload
    _onInputChange
    _uploadFileList
    _uploadFile
    _validateFile--文件校验,格式,大小等
    _formatFileName    限制名字长度
    _isAllowedExtension
    _formatSize    格式化输出图片大小
 
qq.FileUploader
    qq.extend() 追加新的参数,包含上传按钮,图片列表模板等基本信息
    
    
 qq.FileUploader
    addExtraDropzon
    removeExtraDropzone
    _leaving_document_out
    _find--从this._options.classes中获取元素,包含上传按钮和图片列表
    _setupExtraDropzone
    _setupDropzone
    _setupDragDrop
    _onSubmit--先执行option参数中的onSubmit如果返回false,不再继续执行,否则再执行FileUploaderBasic的_onSubmit函数
        

 
  提交上传FileUploader.prototype._onSubmit,_addToList是添加列表项; 另外一提,qq.FileUploaderBasic.prototype._onSubmit.apply(this, arguments);首先执行插件暴露的onSubmit方法里的代码块,这里是你实例化插件时可以附加的(选填);
  

 
图片上传完成(complete)会接收一个JSON格式的响应,插件默认是使用{success:true/false}定义服务器端的响应,并且根据服务器端的响应,给上传列表添加是否上传成功的样式;可以在这个位置自定义服务器的返回格式;插件在上传完成以后默认是把加载效果spinner和取消上传按钮cancel移除DOM元素
  
    _addToList--控制上传文件列表中的内容,一般是列表模板中定义的需要的文件相关信息,图片名称,大小
    _getItemByFileId--获取当前列表项的DOM对象
    __bindCancelEvent--定义取消上传按钮的事件,取消事件的类名是在_classes中定义的cancel 如果是自定义上传列表模板,需修改fileTemplate和classes,并且要一一对应,classes对象中的属性必须出现;(比较麻烦)
 
qq.UploadDropZone--定义拖拽构造函数
qq.UploadDropZone.prototype--拖拽原型
 
qq.UploadButton--定义上传按钮
qq.UploadButton.prototype
    getInput
    reset
    _createInput--创建上传按钮,包含样式,属性和事件
   
qq.UploadHandlerAbstract--上传插件抽象函数,辅助函数
qq.UploadHandlerAbstract.prototype
    log--日志
    add
    upload
 
qq.UploadHandlerXhr--异步上传
qq.UploadHandlerXhr.prototype--异步上传原型,包含异步上传的所有方法
    add
    getName
    getSize
    getLoaded
    _upload--图片上传细节,创建XMLHttpRequest,监听status,设置请求头
  
    
    _onComplete--在_upload中服务器响应后调用
    _cancel--终止异步请求
    
 
现在这个插件项目已经迁移到fine-uploader项目上了,以后会对插件使用规范下一下文档

多文件上传 file-uploader.js的更多相关文章

  1. HTML5文件上传器,纯脚本无插件的客户端文件上传器---Uploader 文件上传器类

    概述 客户端完全基于JavaScript的 浏览器文件上传器,不需要任何浏览器插件,但需要和jQuery框架协同工作,支持超大文件上传,其算法是将一个超大文件切片成N个数据块依次提交给服务 端处理,由 ...

  2. 异步文件上传组件 Uploader

    Uploader是非常强大的异步文件上传组件,支持ajax.iframe.flash三套方案,实现浏览器的全兼容,调用非常简单,内置多套主题支持 和常用插件,比如验证.图片预览.进度条等,广泛应用于淘 ...

  3. 文件上传:swfupload.js、blueimp-file-upload

    一.swfupload 1.下载swfupload http://code.google.com/p/swfupload/ 2. 3.API  http://www.cnblogs.com/henw/ ...

  4. 前端异步文件上传组件 Uploader

    Uploader是非常强大的异步文件上传组件,支持ajax.iframe.flash三套方案,实现浏览器的全兼容,调用非常简单,内置多套主题支持 和常用插件,比如验证.图片预览.进度条等,广泛应用于淘 ...

  5. 文件上传限制条件(JS、后缀、文件名、类型、截断)绕过及修复建议

    在现代互联网的Web应用程序中,上传文件是一 种常见的功能,因为它有助于提高业务效率,比如企业的OA系统,允许用户上传图片.视频.头像和许多其他类型的文件.然而向用户提供的功能越多,Web应用受到攻击 ...

  6. 《Play for Java》学习笔记(六)文件上传file upload

    一. Play中标准方法 使用表单form和multipart/form-data的content-type类型. 1.Form @form(action = routes.Application.u ...

  7. 文件上传-jquery.uploadify.js

    <script type="text/javascript" src="../jquery_uploadify/jquery.uploadify-3.1.min.j ...

  8. Django处理文件上传File Uploads

    HttpRequest.FILES 表单上传的文件对象存储在类字典对象request.FILES中,表单格式需为multipart/form-data <form enctype="m ...

  9. 自定义input文件上传 file的提示文字及样式

    简单记录一下 效果图: 代码: <input class="aload" type='button' value='上传附件' onClick='javascript:$(& ...

  10. 文件上传漏洞之js验证

    0x00 前言 只有前端验证=没有验证 0x01 剔除JS 打开burpsuite,进入Proxy的Options,把Remove all JavaScript选上. 设置浏览器代理直接上传PHP木马 ...

随机推荐

  1. 5.bootstrap练习笔记-巨幕和流体布局

    bootstrap练习笔记-巨幕和流体布局 1.在bootstrap中 .jumbotron可以设置巨幕效果 2.div.jumnotron自动设置一个黑色的巨幕效果 3.div.container ...

  2. jmeter(八)断言

    jmeter中有个元件叫做断言(Assertion),它的作用和loadrunner中的检查点类似: 用于检查测试中得到的响应数据等是否符合预期,用以保证性能测试过程中的数据交互与预期一致. 使用断言 ...

  3. ajax实现下拉菜单无刷新加载更多

    $(function() { var page = 1; var discount = $('#discount'); var innerHeight = window.innerHeight; va ...

  4. Apache Shiro系列之五,概述 —— 配置

    Shiro设计的初衷就是可以运行于任何环境:无论是简单的命令行应用程序还是复杂的企业集群应用.由于运行环境的多样性,所以有多种配置机制可用于配置,本节我们将介绍Shiro内核支持的这几种配置机制.   ...

  5. FineUI(专业版)新增 5 款 Metro 皮肤,邀您共赏!

    http://fineui.com/demo_pro/ 顺应当前流行趋势,五款Metro皮肤闪亮登场,她们分别是: Metro Blue Metro Dark Blue Metro Gray Metr ...

  6. Java JVM proxy setting

    -Dhttp.proxyPort=8080(your port) -Dhttp.proxyHost=192.168.19.200(your IP) -Dhttp.nonProxyHosts=local ...

  7. 几个常用的CV知识点

    刚结束一段实习,图像算法工程师.总结一下图像算法的几个基本的操作,图像操作算子各式各样,各显神通,光是滤波filter这一个专题就可以有很多的技巧和功能. 我从做过的两个小项目入手, 简单介绍一下该项 ...

  8. Xcode调试技巧(断点和重构)

    首先是最简单的普通断点有时候不知道是那个方法调用的崩溃的这个方法,传了个奇怪的值,打个断点就就可以在左侧工具栏里看到最近几个方法执行的循序,和那个方法调用的本方法,一般小问题在这里就可以解决啦~ 条件 ...

  9. [webpack] devtool配置对比

    文件结构 -src -views -essay -list.js -detail.js -index.js -webpack.config.js 文件内容 [/src/.../index.js] im ...

  10. android 图像处理系列合集

    为了便于大家对滤镜算法的学习,以后发布的图像处理滤镜系列帖子会在这里汇总,本人第一次写合集,写得不好的地方大家请见谅,手头上虽然有一些滤镜的算法,但是大多不是android版的,教程里的代码大多是我借 ...