个人比较看好的中文文档:http://bootstrap-fileinput.com/options.html
背景
上传文件或图片,判断名称是否符合规则、不可重名。
初期实现思路
全局定义变量filenames,存储已上传文件名。
在filebatchselected事件回调函数中,获得选中文件的文件名,判断是否在filenames中(判断命名规则),若无可选中,名称添加至filenames中。若有,选中.kv-file-remove(按钮的类名),点击事件,删除。调用删除回调函数filesuccessremove(删除本次上传的文件后)或filedeleted(删除之前上传此次回显的文件后),在其中处理filenames。
问题
当文件名称错误,调用$(".kv-file-remove").click()时,删除错误文件成功,但是会导致之后的所有删除操作不再触发事件回调函数。意味着无法在操作filesnames。
也无法在filebatchselected中判断名称后处理filenames,因为即使此次删除,处理了filenames,但是再删除之前上传的文件时,由于kv-file-remove按钮失效,无法调用删除方法且无法处理filenames。
解决思路
1.重写.kv-file-remove的click事件。(我失败了…)
2.上传后点击删除,不会出现上述问题。
做成自动上传,在filebatchselected中$(this).fileinput(‘upload’);实现自动上传。
之后在fileuploaded进行名称和判断。
备注
上传同名文件时,插件原设置为无法选择,即在浏览文件窗口无法再次选择同名文件,选择了没反应,给用户体验不好,所以走了这么一圈。
这个方案缺点:回发送两次无用请求。