详解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解析json读取List中的实体对象示例
Mar 11 Javascript
JS组件Bootstrap按钮组与下拉按钮详解
May 10 Javascript
浅谈js中子页面父页面方法 变量相互调用
Aug 04 Javascript
微信小程序 实现列表项滑动显示删除按钮的功能
Apr 13 Javascript
微信小程序中多个页面传参通信的学习与实践
May 05 Javascript
Vue工程模板文件 webpack打包配置方法
Dec 26 Javascript
基于rollup的组件库打包体积优化小结
Jun 18 Javascript
javacript replace 正则取字符串中的值并替换【推荐】
Sep 13 Javascript
vue-cli在 history模式下的配置详解
Nov 26 Javascript
vue组件创建的三种方式小结
Feb 03 Javascript
Javascript前端下载后台传来的文件流代码实例
Aug 18 Javascript
JavaScript封装单向链表的示例代码
Sep 17 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用SAX解析XML的实现代码与问题分析
2011/08/22 PHP
浅析php学习的路线图
2013/07/10 PHP
php中simplexml_load_string使用实例分享
2014/02/13 PHP
Laravel框架实现文件上传的方法分析
2019/09/29 PHP
自己写的兼容ie和ff的在线文本编辑器类似ewebeditor
2012/12/12 Javascript
一个页面元素appendchild追加到另一个页面元素的问题
2013/01/27 Javascript
javascript full screen 全屏显示页面元素的方法
2013/09/27 Javascript
jquery取子节点及当前节点属性值的方法
2014/09/09 Javascript
js点击button按钮跳转到另一个新页面
2014/10/10 Javascript
在easyUI开发中,出现jquery.easyui.min.js函数库问题的解决办法
2015/09/11 Javascript
JavaScript实现页面跳转的几种常用方式
2015/11/28 Javascript
在javascript中使用com组件的简单实现方法
2016/08/17 Javascript
bootstrap为水平排列的表单和内联表单设置可选的图标
2017/02/15 Javascript
Vue 去除路径中的#号
2018/04/19 Javascript
webpack里使用jquery.mCustomScrollbar插件的方法
2018/05/30 jQuery
Vue + Node.js + MongoDB图片上传组件实现图片预览和删除功能详解
2020/04/29 Javascript
node.js文件的复制、创建文件夹等相关操作
2021/02/05 Javascript
Python高效编程技巧
2013/01/07 Python
videocapture库制作python视频高速传输程序
2013/12/23 Python
Python如何获取系统iops示例代码
2016/09/06 Python
python爬虫实战之最简单的网页爬虫教程
2017/08/13 Python
Python cookbook(字符串与文本)在字符串的开头或结尾处进行文本匹配操作
2018/04/20 Python
python利用requests库进行接口测试的方法详解
2018/07/06 Python
PYTHON发送邮件YAGMAIL的简单实现解析
2019/10/28 Python
python使用HTMLTestRunner导出饼图分析报告的方法
2019/12/30 Python
Python如何访问字符串中的值
2020/02/09 Python
python如何写出表白程序
2020/06/01 Python
澳大利亚波西米亚风连衣裙在线商店:Fortunate One
2019/04/01 全球购物
下面这个程序执行后会有什么错误或者效果
2014/11/03 面试题
数学专业推荐信范文
2013/11/21 职场文书
军训自我鉴定
2014/01/22 职场文书
幼儿园教学管理制度
2014/02/04 职场文书
校庆活动方案
2014/03/31 职场文书
2019垃圾分类宣传口号汇总
2019/08/16 职场文书
关于JavaScript 中 if包含逗号表达式
2021/11/27 Javascript
Nginx如何配置根据路径转发详解
2022/07/23 Servers