项目经理安排一个工作,让写一个文件上传,要求可以上传录音和文本,非常简单,写完之后去客户那里测试发现问题,客户只有IE9,并且要求支持多选,没办法只能再继续找其他的插件了,最后找到了webuploader这个插件。
说实话,这个插件功能很强大,就是有一个问题,api写的太low了,好多内容api中都没有,只能靠自己慢慢发现坑在慢慢填坑了。
1、点击按钮不会出现弹框。
按照api中的例子写了一个简单的上传,但是发现怎么点击都没反应,百思不得其解啊,无意中发现了当按F12时就可以点击了,但是不可能让客户每次都上传都按下F12啊,然后在网上找到了这个问题的原因:WebUploader初始化的时候,封装了一个input,type=‘file’。初始化的时候因为获取不到正确的自身或者容器的大小,这时候初始化出来的这个透明层的大小就会是1px*1px,这么小的层,根本点不到。所以也就触发不了点击事件了,找到问题就好解决了,只需要在css里面加上一段代码:
#filePicker_csv div:nth-child(2){ 100%!important; height:100%!important; }
2、删除多条等待数据中的某一条
我踩的坑是写的点击事件怎么都不起作用,解决方案是将该点击事件加入到fileQueued事件中去,代码如下:
$(".scList").on('click',function(){ var thisID = $(this).parent().parent().attr("id"); uploader_wav.removeFile(uploader_wav.getFile(thisID,true)); $(this).parent().parent().remove(); })
3、getFiles添加参数使用
uploader.getFiles() 这个方法获取到的所有的文件,所以当执行第二问题的代码时里面仍然有数据,那么这里就需要往括号里面添加参数了
- inited 初始状态
- queued 已经进入队列, 等待上传
- progress 上传中
- complete 上传完成。
- error 上传出错,可重试
- interrupt 上传中断,可续传。
- invalid 文件不合格,不能重试上传。会自动从队列中移除。
- cancelled 文件被移除
这就是我最近踩的坑了,以后碰到了再继续补充吧