1.图片压缩
// 不压缩image, 默认如果是jpeg,文件上传前会压缩一把再上传!
resize:false
2.兼容
// 选择文件的按钮。可选。// 内部根据当前运行是创建,可能是input元素,也可能是flash.
pick:'#picker'
3.图片过滤
// 只允许选择图片文件。
accept:{
title:'Images',
extensions:'gif,jpg,jpeg,bmp,png',
mimeTypes:'image/*'
4.图片自动上传}
5.分片上传// 选完文件后,是否自动上传。auto:true,
6.图片质量// 开起分片上传。chunked:true
// 图片质量,只有type为`image/jpeg`的时候才有效。
7.是否允许放大quality:70,
// 是否允许放大,如果想要生成小图的时候不失真,此选项应该设置为false.
allowMagnify:true,
8.是否允许裁剪
// 是否允许裁剪。
crop:true,
9..swf如果ie8不兼容,请详细检查swf配置的地址
10.上传时携带参数
目前有两种设置的方法。
全局设置,就是每个文件上传的时候都会携带的。通过修改options.formData来控制。比如如下demo添加一个uid=123。
// 初始化的时候直接添加var uploader =newWebUploader.Uploader({ ... formData: { uid:123 } ... }); // 初始化以后添加 uploader.options.formData.uid =123;局部设置,给每个独立的文件上传设置。通过绑定一个
uploadBeforeSend
事件来添加。uploader.on( 'uploadBeforeSend', function( block, data ) { // block为分块数据。// file为分块对应的file对象。var file = block.file; // 修改data可以控制发送哪些携带数据。 data.uid =123; // 将存在file对象中的md5数据携带发送过去。// data.fileMd5 = file.md5;// 删除其他数据// delete data.key; });
11.如何判断文件是否上传成功?
默认如果啥也不处理,只要有返回数据就认为是成功,就算返回的是错误信息,也认为是成功了。
但是,在认为成功前会派送一个事件
uploadAccept
,这个事件是用来询问是否上传成功的。在这个事件中你可以拿到上传的是哪个文件,以及对应的服务端返回reponse
。uploader.on( 'uploadAccept', function( file, response ) { if ( hasError ) { // 通过return false来告诉组件,此文件上传有错。return false; } });
response
是个对象,如果服务器返回是json格式,那么正和你意,都已经解析好了,如果不是json格式,response._raw
里面可以拿到原始数据。所以,webuploader对于后端返回的数据格式是没有要求的。