bootstrap-3-fileinput上传案例
效果


导入的js和css
<link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"/>
<link th:href="@{/js/bootstrap-fileinput-master/css/fileinput.min.css}" rel="stylesheet"/>
<link th:href="@{/js/bootstrap-fileinput-master/css/fileinput-rtl.min.css}" rel="stylesheet"/> <!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
<script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<script th:src="@{/js/bootstrap-fileinput-master/js/fileinput.min.js}"></script>
<script th:src="@{/js/bootstrap-fileinput-master/js/locales/zh.js}"></script>
\\
html
<div class="form-group" id="uiIdcardNumber-img">
<div class="col-sm-4">
<a onclick="showUploadIdCardModel()">上传身份证图片</a>
<script type="text/javascript">
function showUploadIdCardModel(){
$('#uiIdcardNumberModel').modal('show');
}
</script>
<input type="hidden" class="form-control" id="uiIdcardNumberImg1" name="uiIdcardNumberImg1"/>
<input type="hidden" class="form-control" id="uiIdcardNumberImg2" name="uiIdcardNumberImg2"/>
</div>
</div> <div class="modal fade" id="uiIdcardNumberModel" tabindex="-1" role="dialog" aria-labelledby="myModalLabel2" data-backdrop='static'>
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<span class="modal-title" id="myModalLabel">请上传本人身份证件,确保图片清晰,四角完整</span>
</div>
<div class="modal-body">
<div class="container" style="width: 100%;">
<div class="row" >
<div class="form-group">
<div class="col-sm-6">
<input id="uiIdcardNumberImg1-file" name="file" class="projectfile" type="file"/>
</div>
<div class="col-sm-6">
<input id="uiIdcardNumberImg2-file" name="file" class="projectfile" type="file"/>
</div>
</div>
<div class="form-group">
<div class="col-sm-5">
</div>
<div class="col-sm-2">
<button type="button" id="nqs-add-xiangmu-form-submit" class="btn nqs-btn-inverse" onclick="uiIdcardNumberModel()">完成</button>
<script type="text/javascript">
function uiIdcardNumberModel(){
$("#uiIdcardNumberModel").modal('hide');
//var uiIdcardNumberImg1 = $("#uiIdcardNumberImg1").val();
//var uiIdcardNumberImg2 = $("#uiIdcardNumberImg2").val();
}
</script>
</div>
<div class="col-sm-5">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
js
//初始化fileinput控件(第一次初始化)
var $file1 = $('#uiIdcardNumberImg1-file').fileinput({
language: 'zh', //设置语言
uploadUrl: "/uact/uploadfile", //上传的地址
uploadExtraData:{"type": '1012-0001'},
allowedFileExtensions : ['jpg', 'png','gif'],//接收的文件后缀,
/*deleteUrl:"/uact/deletefile",
deleteExtraData:function() {
var obj = {};
var v = $("#uiIdcardNumberImg1").val(result.fileName);
if( v == null || v == "" || v == undefined ){
v = "--";
}
obj.fileid = v;
obj.type = '1012-0001';
return obj;
},*/
maxFileCount: 1,
enctype: 'multipart/form-data',
showUpload: false, //是否显示上传按钮
showCaption: false,//是否显示标题
showRemove :false,
showBrowse:false,
browseOnZoneClick:true,
autoReplace:true,//是否替换
validateInitialCount:true,
browseClass: "btn btn-primary", //按钮样式
previewFileIcon: "<i class='glyphicon glyphicon-king'></i>",
msgFilesTooMany: "选择上传的文件数量({n}) 超过允许的最大数值{m}!",
layoutTemplates:{
//actionDelete:'',//设置删除按钮的值为空字符串,则去掉图片上面的缩略删除按钮
/*actionUpload:''*/
}
}).on('fileclear', function(event) {
console.log("fileclear");
}).on('filecleared', function(event) {
console.log("filecleared");
}).on('fileloaded', function(event, file, previewId, index, reader) {
console.log("fileloaded");
}).on('filereset', function(event) {
console.log("filereset");
}).on('filepreremove', function(event, id, index) {
console.log('id = ' + id + ', index = ' + index);
}).on('fileremoved', function(event, id, index) {
console.log('id = ' + id + ', index = ' + index);
}).on('filepredelete', function(event, key, jqXHR, data) {
console.log('Key = ' + key);
}).on('filedeleted', function(event, key, jqXHR, data) {
console.log('Key = ' + key);
}).on('filesuccessremove', function(event, id) {//上传成功后删除触发
var v = $("#uiIdcardNumberImg1").val();
if (v != null && v != "" && v != undefined) {
$.ajax({
type: "POST",
cache:false,
async : true,
dataType : "json",
url: "/uact/deletefile",
data: {fileid:v,type:'1012-0001'},
success: function(data){
$("#uiIdcardNumberImg1").val("");
}
});
} else {
return false; // abort the thumbnail removal
}
});
//上传成功后回调函数(使用jquery绑定一个函数)
$file1.on("fileuploaded", function(event, data, previewId, index) {
console.log($file1);
var result = data.response;
if( result.success){
$("#uiIdcardNumberImg1").val(result.fileName);
}
}); //初始化fileinput控件(第一次初始化)
$('#uiIdcardNumberImg2-file').fileinput({
language: 'zh', //设置语言
uploadUrl: "/uact/uploadfile?type=1012-0001", //上传的地址
allowedFileExtensions : ['jpg', 'png','gif'],//接收的文件后缀,
maxFileCount: 1,
enctype: 'multipart/form-data',
showUpload: false, //是否显示上传按钮
showCaption: false,//是否显示标题
showRemove :true,
autoReplace:true,//是否替换
browseClass: "btn btn-primary", //按钮样式
previewFileIcon: "<i class='glyphicon glyphicon-king'></i>",
msgFilesTooMany: "选择上传的文件数量({n}) 超过允许的最大数值{m}!",
layoutTemplates:{
actionDelete:'',//设置删除按钮的值为空字符串,则去掉图片上面的缩略删除按钮
/*actionUpload:''*/
}
});
$("#uiIdcardNumberImg2-file").on("fileuploaded", function(event, data, previewId, index) {
var result = data.response;
if( result.success){
$("#uiIdcardNumberImg2").val(result.fileName);
}
});
修改了部分样式
/* 上传文件 */
.file-preview {
height: 256px!important;
margin-bottom: 20px!important;
}
.file-preview .kv-upload-progress {
display: none!important;
}
.file-preview .kv-upload-progress .progress{
display: none!important;
}
.file-preview .fileinput-remove{
margin-right: 20px!important;
margin-top: 20px!important;
display:none;
}
.file-preview .file-drop-zone{
margin:inherit;
}
.file-preview .file-drop-zone>div{
outline: none!important;
}
.file-preview .file-drop-zone .file-preview-thumbnails{
/* height: 100%!important; */ }
.file-preview .file-drop-zone .file-preview-thumbnails .krajee-default.file-preview-frame {
/* margin-top: -23px!important; */
}
.file-preview .file-drop-zone .file-preview-thumbnails .krajee-default.file-preview-frame .kv-file-content {
height: 100%!important;
}
.file-preview .file-drop-zone .file-preview-thumbnails .file-preview-frame .kv-file-content img{
height: 115px!important;
width: 100%!important;
}
.file-preview .file-drop-zone .file-preview-thumbnails .krajee-default.file-preview-frame .krajee-default.file-preview-frame .file-thumbnail-footer{
height: 165px!important;
}
.file-preview .file-drop-zone .file-preview-thumbnails .krajee-default.file-preview-frame .krajee-default.file-preview-frame .file-thumbnail-footer .file-footer-caption{
eight: 22px!important;
text-overflow: ellipsis!important;
}
.file-drop-zone-title{
font-size: 0.6em!important;
}
.uiIdcardNumberImg{
width: 200px;
height: 140px;
}
bootstrap-3-fileinput上传案例的更多相关文章
- Bootstrap FileInput 上传 中文 API 整理
Bootstrap FileInput 上传 中文 API 整理 上传插件有很多 但是公司用的就是 Bootstrap FileInput 自己就看了看 会用就行 自己都不知道每个值是干嘛用的就问 ...
- bootstrap fileinput上传文件
参考博客:https://blog.csdn.net/linhaiyun_ytdx/article/details/76215974 https://www.cnblogs.com/parker-y ...
- Java实现一个简单的文件上传案例
Java实现一个简单的文件上传案例 实现流程: 1.客户端从硬盘读取文件数据到程序中 2.客户端输出流,写出文件到服务端 3.服务端输出流,读取文件数据到服务端中 4.输出流,写出文件数据到服务器硬盘 ...
- TCP通信---文件上传案例、多线程文件上传
目前大多数服务器都会提供文件上传的功能,由于文件上传需要数据的安全性和完整性,很明显需要使用TCP协议来实现. TCP通信需要创建一个服务器端程序和一个客户端程序,实现客户端向服务器端上传文件 代码实 ...
- .net core版 文件上传/ 支持批量上传,拖拽以及预览,bootstrap fileinput上传文件
asp.net mvc请移步 mvc文件上传支持批量上传,拖拽以及预览,文件内容校验 本篇内容主要解决.net core中文件上传的问题 开发环境:ubuntu+vscode 1.导入所需要的包:n ...
- 关于Bootstrap fileinput 上传新文件,移除时触发服务器同步删除的配置
在Bootstrap fileinput中移除预览文件时可以通过配置initialPreviewConfig: [ { url:'deletefile',key:fileid } ] 来同步删除服务器 ...
- bootstrap fileinput 上传文件
最近用到文件上传功能, 说实话:以前遇到过一次,COPY了别人的代码 结束! 这次又要用,可是看到别人很酷的文件上传功能,心痒了! 好吧.简单的办法,找控件: bootstrap fileinput ...
- 【Bootstrap】bootstrap-fileinput上传文件插件
[bootstrap-fileinput] 这是个据传最好用的bootstrap相关联的文件上传控件,支持拖曳上传,多线程上传,上传文件预览等等功能. 首先还是说一下要引入的一些文件: <lin ...
- SpringBoot+BootStrap多文件上传到本地
1.application.yml文件配置 # 文件大小 MB必须大写 # maxFileSize 是单个文件大小 # maxRequestSize是设置总上传的数据大小 spring: servle ...
随机推荐
- HDU2853 Assignment KM
原文链接http://www.cnblogs.com/zhouzhendong/p/8284105.html 题目传送门 - HDU2853 题意概括 (来自谷歌翻译) 题解 这是一道好题. 我们首先 ...
- scrapy 第一个案例(爬取腾讯招聘职位信息)
import scrapy import json class TzcSpider(scrapy.Spider): # spider的名字,唯一 name = 'tzc' # 起始地址 start_u ...
- 线程有gil锁
gil锁作用: 遇到阻塞( 比如 recv() , accept() )就切换
- Android自定义View前传-View的三大流程-Measure
Android自定义View前传-View的三大流程-Measure 参考 <Android开发艺术探索> https://developer.android.google.cn/refe ...
- WinXP/Win2003 VOL等各版本的含义
一般我们是通过版本来讨论同一软件区别的,比如WinXP免激活版.零售版等等,但通过讨论光盘的不同来定义版本更加容易理解. 因为软件的载体是光盘,微软不可能为了每一种版本都生产出不同的光盘,而只能是以相 ...
- SQL 并联更新
UPDATE o SET col2 = c.col3 FROM bo1 AS o JOIN bo2 AS c ON c.col3<>'' WHERE c.col3<>'' UP ...
- 洛谷P1880 石子合并(区间DP)(环形DP)
To 洛谷.1880 石子合并 题目描述 在一个园形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分. 试设计出1 ...
- js点击回到顶部2
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>点 ...
- springboot2、mybatis-plus3 一行配置实现打印sql最终填充的参数值
在application.yml中添加: # 配置slq打印日志 mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.st ...
- [P4995]跳跳!(贪心)
这应该是我做过的最简单的洛谷月赛了 题意 给你n个高度,你的初始高度是0,现在要求你遍历每一个高度,每一次遍历耗费(hi−hj)2 的值 现在要你求耗费值最大 思路 真的是水…… 排序一下,求一下就好 ...