详解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 相关文章推荐
一段效率很高的for循环语句使用方法
Aug 13 Javascript
jQuery 渐变下拉菜单
Dec 15 Javascript
jquery实现每个数字上都带进度条的幻灯片
Feb 20 Javascript
javascript使用location.search的示例
Nov 05 Javascript
JavaScript制作简单分页插件
Sep 11 Javascript
利用js编写响应式侧边栏
Sep 17 Javascript
几句话带你理解JS中的this、闭包、原型链
Sep 26 Javascript
vue中将网页打印成pdf实例代码
Jun 15 Javascript
Vue v2.4中新增的$attrs及$listeners属性使用教程
Jan 08 Javascript
vue2.0 elementUI制作面包屑导航栏
Feb 22 Javascript
vue打包npm run build时候界面报错的解决
Aug 13 Javascript
vue如何使用模拟的json数据查看效果
Mar 31 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
thinkPHP5框架路由常用知识点汇总
2019/09/15 PHP
获取网站跟路径的javascript代码(站点及虚拟目录)
2009/10/20 Javascript
JavaScript学习笔记(十七)js 优化
2010/02/04 Javascript
jquery插件lazyload.js延迟加载图片的使用方法
2014/02/19 Javascript
自定义jquery模态窗口插件无法在顶层窗口显示问题
2014/05/29 Javascript
深入理解javascript中的立即执行函数(function(){…})()
2014/06/12 Javascript
javascript中alert()与console.log()的区别
2015/08/26 Javascript
JavaScript文本框脚本编写的注意事项
2016/01/25 Javascript
Node.js的Koa框架上手及MySQL操作指南
2016/06/13 Javascript
JavaScript 随机验证码的生成实例代码
2016/09/22 Javascript
javascript简易画板开发
2020/04/12 Javascript
bootstrap IE8 兼容性处理
2017/03/22 Javascript
vue使用Proxy实现双向绑定的方法示例
2019/03/20 Javascript
解决vant框架做H5时踩过的坑(下拉刷新、上拉加载等)
2020/11/11 Javascript
[57:37]EG vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python实现将HTML转换成doc格式文件的方法示例
2017/11/20 Python
tensorflow学习笔记之mnist的卷积神经网络实例
2018/04/15 Python
对python实时得到鼠标位置的示例讲解
2018/10/14 Python
python3+pyqt5+itchat微信定时发送消息的方法
2019/02/20 Python
深入解析python中的实例方法、类方法和静态方法
2019/03/11 Python
Python占用的内存优化教程
2019/07/28 Python
Django框架视图函数设计示例
2019/07/29 Python
Python OpenCV实现鼠标画框效果
2020/08/19 Python
python zip()函数使用方法解析
2019/10/31 Python
Python数据可视化:顶级绘图库plotly详解
2019/12/07 Python
利用python实现汉诺塔游戏
2021/03/01 Python
html5 offlline 缓存使用示例
2013/06/24 HTML / CSS
人代会标语
2014/06/30 职场文书
企业2014年度工作总结
2014/12/10 职场文书
开学典礼观后感
2015/06/15 职场文书
四年级数学教学反思
2016/02/16 职场文书
2016年助残日旅游活动总结
2016/04/01 职场文书
Python实现列表拼接和去重的三种方式
2021/07/02 Python
利用Matlab绘制各类特殊图形的实例代码
2021/07/16 Python
Python编写nmap扫描工具
2021/07/21 Python
mysql的单列多值存储实例详解
2022/04/05 MySQL