详解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 相关文章推荐
myeclipse安装jQuery插件的方法
Mar 29 Javascript
js禁止document element对象选中文本实现代码
Mar 21 Javascript
下拉列表select 由左边框移动到右边示例
Dec 04 Javascript
Javascript中的回调函数和匿名函数的回调示例介绍
May 12 Javascript
js单独获取一个checkbox看其是否被选中
Sep 22 Javascript
jquery获取当前元素索引值用法实例
Jun 10 Javascript
jquery事件的ready()方法使用详解
Nov 11 Javascript
jquery实现简单的遮罩层
Jan 08 Javascript
JavaScript Ajax实现异步通信
Dec 14 Javascript
vue过渡和animate.css结合使用详解
Jun 14 Javascript
JavaScript实现鼠标滚轮控制页面图片切换功能示例
Oct 14 Javascript
js面向对象封装级联下拉菜单列表的实现步骤
Feb 08 Javascript
详解基于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新手上路(四)
2006/10/09 PHP
php解析url的三个示例
2014/01/20 PHP
php实现微信公众平台账号自定义菜单类
2015/10/11 PHP
简单谈谈PHP面向对象之标识对象
2017/06/27 PHP
JavaScript中获取元素索引的函数
2010/09/10 Javascript
浏览器解析js生成的html出现样式问题的解决方法
2012/04/16 Javascript
jquery实现图片翻页效果
2013/12/23 Javascript
jQuery通过控制节点实现仅在前台通过get方法完成参数传递
2015/02/02 Javascript
jQuery实现可用于博客的动态滑动菜单完整实例
2015/09/17 Javascript
NodeJS创建基础应用并应用模板引擎
2016/04/12 NodeJs
jQuery使用ajax跨域获取数据的简单实例
2016/05/18 Javascript
javascript封装addLoadEvent实现页面同时加载执行多个函数的方法
2016/07/25 Javascript
js实现图片缓慢放大缩小效果
2016/08/02 Javascript
Jquery Easyui进度条组件Progress使用详解(8)
2020/03/26 Javascript
Extjs 中的 Treepanel 实现菜单级联选中效果及实例代码
2017/08/22 Javascript
JavaScript实现学生在线做题计时器功能
2018/12/05 Javascript
javascript原型链学习记录之继承实现方式分析
2019/05/01 Javascript
Python 元组(Tuple)操作详解
2014/03/11 Python
基于Python os模块常用命令介绍
2017/11/03 Python
Python实现OpenCV的安装与使用示例
2018/03/30 Python
python3调用百度翻译API实现实时翻译
2018/08/16 Python
Python Tensor FLow简单使用方法实例详解
2020/01/14 Python
解决Jupyter Notebook使用parser.parse_args出现错误问题
2020/04/20 Python
Python趣味入门教程之循环语句while
2020/08/26 Python
Python JSON常用编解码方法代码实例
2020/09/05 Python
写一个函数,要求输入一个字符串和一个字符长度,对该字符串进行分隔
2015/07/30 面试题
String、StringBuffer、StringBuilder有区别
2015/09/18 面试题
抄作业检讨书
2014/02/17 职场文书
小学生关于梦想的演讲稿
2014/08/22 职场文书
党校学习心得体会范文
2014/09/09 职场文书
2014年小学教师工作自我评价
2014/09/22 职场文书
不服从公司安排检讨书
2014/09/24 职场文书
个人总结格式范文
2015/03/09 职场文书
考博导师推荐信范文
2015/03/27 职场文书
超外差式晶体管收音机的组装与统调
2021/04/22 无线电
Go timer如何调度
2021/06/09 Golang