详解bootstrap-fileinput文件上传控件的亲身实践


Posted in Javascript onMarch 21, 2019

经理让我帮服务器开发人员开发一个上传文件功能界面,我就想着以前使用过bootstrap-fileinput插件进行文件上传,很不错。赶紧就撸起来了。

1、下载压缩包。插件地址https://github.com/kartik-v/bootstrap-fileinput/ ,下载压缩包解压之后,拿出fileinput.min.js、fileinput.min.css、和中文需要引用的插件zh.js,因为这款插件默认的语言是英语。把这几个文件引入进页面

2、文件的引入顺序

  • 引入bootstrap.min.css
  • 引入fileinput.min.css
  • 引入jquery,版本最好2以上
  • 引入bootstrap.min.js
  • 引入fileinput.min.js
  • 引入中文插件zh.js

3、使用

<div class="upload-wrap">
   <input type="file" id="md5File" multiple="multiple" name="test" />
</div>

将其设置为multiple,可以多选文件进行上传。

js文件操作

$('#md5File').fileinput({
    language: 'zh',
    uploadUrl: 'http://localhost:8080/sign',
    showCaption: true,//是否显示被选文件的简介
    showUpload: true,//是否显示上传按钮
    showRemove: true,//是否显示删除按钮
    showClose: true,//是否显示关闭按钮
    enctype: 'multipart/form-data',
    uploadAsync:false, //false 同步上传,后台用数组接收,true 异步上传,每次上传一个file,会调用多次接口 
    layoutTemplates: {
      actionUpload: ''//就是让文件上传中的文件去除上传按钮
//      actionDelete: '',//去除删除按钮
    },
    browseClass: 'btn btn-primary',
    maxFileCount: 2,
    minFileCount : 2,
  }).on('filebatchuploadsuccess',function(res) {
    console.log(res);
  });

需求是让选择两个文件进行上传,而且只能发起一次请求,所以这里让maxFileCount和minFileCount都设置为2,uploadAsync设置为false,就是为了让两个文件同步上传,后台用数组一次接收。同步和异步上传成功结果处理的方法都是不同的

异步上传错误结果处理

$('#uploadfile').on('fileerror', function(event, data, msg) {

});

异步上传成功结果处理

$("#uploadfile").on("fileuploaded", function (event, data, previewId, index) {

})

同步上传错误结果处理

$('#uploadfile').on('filebatchuploaderror', function(event, data, msg) {

});

同步上传成功结果处理

$('#uploadfile').on('filebatchuploadsuccess', function(event, data, previewId, index) { 

});

其实本来不难,但是我对于同步上传成功结果处理的函数一直没有处理对,打断点也捕捉不到,我也很纳闷在做的时候,我在很多地方看到的是如下的处理方法:

详解bootstrap-fileinput文件上传控件的亲身实践

我就一直使用$('#uploadfile').on('filepreupload',function(e,data,previewId,index){})这个方法,后来才恍然大悟,把filepreupload改成了filebatchuploadsuccess,最终才实现了同步上传成功结果处理。也算是一个小坑,被人误导,自己也没有看清楚。

这里面还有一个参数:layoutTemplates,这个参数是对上传的那多个文件里面操作

详解bootstrap-fileinput文件上传控件的亲身实践

如上图的红色圈圈,可以对这几个icon进行设置

layoutTemplates: {
      actionUpload: ''//就是让文件上传中的文件去除上传按钮
//      actionDelete: '',//去除删除按钮
    },

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
番茄的表单验证类代码修改版
Jul 18 Javascript
图片上传判断及预览脚本的效果实例
Aug 07 Javascript
Javascript中查找不以XX字符结尾的单词示例代码
Oct 15 Javascript
JavaScript调试技巧之console.log()详解
Mar 19 Javascript
推荐9款炫酷的基于jquery的页面特效
Dec 07 Javascript
javascript对象的相关操作小结
May 16 Javascript
jQuery each函数源码分析
May 25 Javascript
喜大普奔!jQuery发布 3.0 最终版
Jun 12 Javascript
全面解析Bootstrap中tooltip、popover的使用方法
Jun 13 Javascript
原生js封装添加class,删除class的实例
Nov 06 Javascript
vuex实现像调用模板方法一样调用Mutations方法
Nov 06 Javascript
Vue 事件的$event参数=事件的值案例
Jan 29 Vue.js
详解基于React.js和Node.js的SSR实现方案
Mar 21 #Javascript
javascript中call()、apply()的区别
Mar 21 #Javascript
vue实现微信获取用户信息的方法
Mar 21 #Javascript
vue里如何主动销毁keep-alive缓存的组件
Mar 21 #Javascript
基于node简单实现RSA加解密的方法步骤
Mar 21 #Javascript
详解React项目如何修改打包地址(编译输出文件地址)
Mar 21 #Javascript
js实现unicode码字符串与utf8字节数据互转详解
Mar 21 #Javascript
You might like
据说是雅虎的一份PHP面试题附答案
2009/01/07 PHP
php url地址栏传中文乱码解决方法集合
2010/06/25 PHP
反射调用private方法实践(php、java)
2015/12/21 PHP
thinkPHP实现签到功能的方法
2017/03/15 PHP
PHP多维数组指定多字段排序的示例代码
2018/05/16 PHP
PHP DB 数据库连接类定义与用法示例
2019/03/11 PHP
js this函数调用无需再次抓获id,name或标签名
2014/03/03 Javascript
node.js入门教程
2014/06/01 Javascript
JavaScript在网页中画圆的函数arc使用方法
2015/11/13 Javascript
JavaScript表单验证实例之验证表单项是否为空
2016/01/10 Javascript
Bootstrap实现下拉菜单效果
2016/04/29 Javascript
Ztree新增角色和编辑角色回显问题的解决
2016/10/25 Javascript
Bootstrap学习笔记 轮播(Carousel)插件
2017/03/21 Javascript
JS ES6中setTimeout函数的执行上下文示例
2017/04/27 Javascript
史上最全JavaScript常用的简写技巧(推荐)
2017/08/17 Javascript
详解Webpack-dev-server的proxy用法
2018/09/08 Javascript
node.js中 redis 的安装和基本操作示例
2020/02/10 Javascript
Python实现的数据结构与算法之双端队列详解
2015/04/22 Python
Python实现excel转sqlite的方法
2017/07/17 Python
Python编程实现双链表,栈,队列及二叉树的方法示例
2017/11/01 Python
Python代码块批量添加Tab缩进的方法
2018/06/25 Python
Python画图高斯分布的示例
2019/07/10 Python
一款纯css3实现的鼠标经过按钮特效教程
2014/11/09 HTML / CSS
viagogo意大利票务平台:演唱会、体育比赛、戏剧门票
2018/01/26 全球购物
美国性感内衣店:Yandy
2018/06/12 全球购物
澳大利亚百货商店中销量第一的商务衬衫品牌:Van Heusen
2018/07/26 全球购物
加拿大国民体育购物网站:National Sports
2018/11/04 全球购物
Java面试题:为什么要用Java
2012/05/11 面试题
个人简历的自荐信
2013/10/23 职场文书
幼儿教师寄语集锦
2014/04/03 职场文书
小学数学教研活动总结
2014/07/01 职场文书
尊老爱亲美德少年事迹材料
2014/08/14 职场文书
雷锋的故事观后感
2015/06/10 职场文书
办公室规章制度范本
2015/08/04 职场文书
《分一些蚊子进来》读后感3篇
2020/01/09 职场文书
晶体管单管来复再生式收音机
2021/04/22 无线电