由于XMLhttprequest 和 google.gears 有很大不同。
所以我总进行了封装(UpLoadFileXHR)。上面 2 3 4 步骤我都封装好了。
只要实例化 UpLoadFileXHR 就可以做拖拽文件上传了。点击下载
实例
1:引用 UpLoadFileXHR.js 文件
| new UpLoadFileXHR(Object) | |||
|---|---|---|---|
| var upLoadFile = new UpLoadFileXHR({url:'',name:''}) | |||
| url | string | 上传地址 | 必须 |
| name | string | 后台取得数据的name | 必须 |
| 属性 | |||
| format | RegExp | 过滤文件类型比如(/jpg|pen|jpeg|gif/);不设置则所有文件通过 | 非必要 |
| debug | Boolean | 是否开启debug | 默认false |
| 自动填充属性 | |||
| XHR | object | 实例化以后根据浏览器自动填充的属性,这里保存了当前上传文件所使用的xhr对象 | 自动 |
| support | object | 当前用什么传输数据 {googleGears:Boolean, fileReader:Boolean} | 自动 |
| 方法 | |||
| start | function | 绑定到drop事件上的方法,接收一个事件默认e参数。请把this指向你当前的调用start的对象 | |
| stopPrevent | function | 取消事件冒泡和事件默认动作 | return false |
| checkFile | function | 检查file属性(格式,大小等) | return Boolean |
| 事件 | |||
| onerror | function | 出错 | 默认参数 e(错误对象) |
| onformaterror | function | 格式不正确(判断依据 format 属性) | 默认参数 file(当前file对象) |
| onloadstart | function | 开始上传 | 默认参数 file(google.gears下) or e(XMLhttprequest下) |
| onprogress | function | 上传进度 | 事件默认参数 |
| onreadystatechange | function | 上传状态 | 事件默认参数 |
新闻热点
疑难解答