详解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 相关文章推荐
js计数器代码
Nov 04 Javascript
IE的fireEvent方法概述及应用
Feb 22 Javascript
使用闭包对setTimeout进行简单封装避免出错
Jul 10 Javascript
jquery设置控件位置的方法
Aug 21 Javascript
JS中mouseover和mouseout多次触发问题如何解决
Jun 06 Javascript
vue中v-model动态生成的实例详解
Oct 27 Javascript
JS中验证整数和小数的正则表达式
Oct 08 Javascript
Webstorm2016使用技巧(SVN插件使用)
Oct 29 Javascript
利用原生JS实现data方法示例代码
May 28 Javascript
vue从一个页面跳转到另一个页面并携带参数的解决方法
Aug 12 Javascript
JSON获取属性值方法代码实例
Jun 30 Javascript
JavaScript实现烟花绽放动画效果
Aug 04 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文件上传的例子及参数详解
2013/12/12 PHP
WAMP环境中扩展oracle函数库(oci)
2015/06/26 PHP
PHP分页初探 一个最简单的PHP分页代码的简单实现
2016/06/21 PHP
php网页版聊天软件实现代码
2016/08/12 PHP
动态加载js文件 document.createElement
2006/10/14 Javascript
Jquery Select操作方法集合脚本之家特别版
2010/05/17 Javascript
javascript中怎么做对象的类型判断
2013/11/11 Javascript
改变状态栏文字的js代码
2014/06/13 Javascript
jQuery中:has选择器用法实例
2014/12/30 Javascript
JavaScript使用RegExp进行正则匹配的方法
2015/07/11 Javascript
ANGULARJS中使用JQUERY分页控件
2015/09/16 Javascript
Node.js connect ECONNREFUSED错误解决办法
2016/09/15 Javascript
JavaScript实现的微信二维码图片生成器的示例
2016/10/26 Javascript
jQuery图片拖动组件Dropzone用法示例
2017/01/17 Javascript
Vue axios 中提交表单数据(含上传文件)
2017/07/06 Javascript
JavaScript 值类型和引用类型的初次研究(推荐)
2017/07/19 Javascript
jQuery 实现鼠标画框并对框内数据选中的实例代码
2017/08/29 jQuery
Vue.js通用应用框架-Nuxt.js的上手教程
2017/12/25 Javascript
微信小程序实现文字跑马灯效果
2020/05/26 Javascript
python利用socketserver实现并发套接字功能
2018/01/26 Python
对Python3 pyc 文件的使用详解
2019/02/16 Python
python lambda表达式(匿名函数)写法解析
2019/09/16 Python
Django配置文件代码说明
2019/12/04 Python
解决Tensorboard 不显示计算图graph的问题
2020/02/15 Python
Python flask路由间传递变量实例详解
2020/06/03 Python
详解解决jupyter不能使用pytorch的问题
2021/02/18 Python
CSS Grid布局教程之什么是网格布局
2014/12/30 HTML / CSS
英国鹦鹉店:Parrot Essentials
2018/12/03 全球购物
会计专业大学生求职信范文
2014/01/28 职场文书
《石榴》教学反思
2014/03/02 职场文书
领导干部整治奢华浪费之风思想汇报
2014/10/07 职场文书
期中考试复习计划
2015/01/19 职场文书
社会主义核心价值观主题教育活动总结
2015/05/07 职场文书
运动会800米赞词
2015/07/22 职场文书
Java 泛型详解(超详细的java泛型方法解析)
2021/07/02 Java/Android
Nginx虚拟主机的搭建的实现步骤
2022/01/18 Servers