bootstrap-3-上传图片-列表显示
效果

导入的js和css
<!-- 最新版本的 Bootstrap 核心 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/themes/explorer/theme.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/themes/explorer/theme.js}"></script>
<script th:src="@{/js/bootstrap-fileinput-master/js/locales/zh.js}"></script>
html的model
<div class="modal fade" id="loadingFildPdRecommendModel" 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="myModalLabel2">上传附件</span>
</div>
<div class="modal-body">
<div class="container" style="width: 100%;">
<div class="row" >
<div class="form-group">
<div class="col-sm-12">
<input id="fild-pd-recommend" name="file" type="file" multiple="multiple" class="file-loading"/>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
js
$(function(){
initRecommentFile();
});
function initRecommentFile(){
$.post("/pact/findrecommentfile?pdId="+pdId, function (result) {
var data = result.rows;
file_upload_Recommend(data);
});
}
//权益文件上传上传
function file_upload_Recommend(data){
var preview = [];
var previewConfig = [];
for (var i = 0; i < data.length; i++) {
preview[i]=data[i].prefFinename;
var o = {};
o.caption = data[i].prefFinename;
o.size = "762980";
o.key = data[i].idStr;
o.url = "/uact/deletefile?fileid=key&type=1012-0002";//删除地址配置
previewConfig[i] = o;
}
//初始化fileinput控件(第一次初始化)
$("#fild-pd-recommend").fileinput({
theme: "explorer",
uploadUrl: "/uact/uploadfile?type=1012-0002", //上传的地址
uploadExtraData:{pdId:pdId},
minFileCount: 0,
maxFileCount: 20,
overwriteInitial: false,
showUpload: true, //是否显示上传按钮
showCaption: true,//是否显示标题
showRemove :false,
showBrowse:true,
browseOnZoneClick:true,
autoReplace:true,//是否替换
validateInitialCount:true,
allowedFileExtensions:['jpg', 'pdf', 'xls','png'],
msgInvalidFileExtension:'上传文件类型错误"{name}".只能上传"{extensions}"类型的文件',
initialPreview: preview,
/*initialPreviewAsData: true, // defaults markup
uploadExtraData: {
img_key: "1000",
img_keywords: "happy, nature",
},*/
initialPreviewConfig: previewConfig,
/*initialPreviewConfig: [
{caption: "Business 1.jpg", size: 762980, url: "/site/file-delete", key: 11},
{caption: "Business 2.jpg", size: 823782, url: "/site/file-delete", key: 13, previewAsData: false},
{caption: "PDF Sample.pdf", size: 8000, url: "/site/file-delete", key: 14, type: "pdf"},
//{caption: "Lorem Ipsum.txt", type: "text", size: 1430, url: "/site/file-delete", key: 12},
//{type: "video", size: 375000, filetype: "video/mp4", caption: "Krajee Sample.mp4", url: "/site/file-delete", key: 15},
],*/
preferIconicPreview: true, // this will force thumbnails to display icons for following file extensions
previewFileIcon:'<i class="glyphicon glyphicon-file"></i> ',
previewFileIconSettings: { // configure your icon file extensions
//'doc': '<i class="fa fa-file-word-o text-primary" ><img src="/img/excel.png"/></i>',
'xls': '<i class="fa fa-file-excel-o text-success"><img src="/img/excel.png"/></i>',
//'ppt': '<i class="fa fa-file-powerpoint-o text-danger"><img src="/img/excel.png"/></i>',
'pdf': '<i class="fa fa-file-pdf-o text-danger"><img src="/img/pdf.png"/></i>',
//'zip': '<i class="fa fa-file-archive-o text-muted"></i>',
//'htm': '<i class="fa fa-file-code-o text-info"></i>',
//'txt': '<i class="fa fa-file-text-o text-info"><img src="/img/excel.png"/></i>',
//'mov': '<i class="fa fa-file-movie-o text-warning"></i>',
//'mp3': '<i class="fa fa-file-audio-o text-warning"></i>',
// note for these file types below no extension determination logic
// has been configured (the keys itself will be used as extensions)
'jpg': '<i class="fa fa-file-photo-o text-danger"><img src="/img/jpg.png"/></i>',
//'gif': '<i class="fa fa-file-photo-o text-muted"></i>',
'png': '<i class="fa fa-file-photo-o text-primary"><img src="/img/jpg.png"/></i>'
},
previewFileExtSettings: { // configure the logic for determining icon file extensions
'doc': function(ext) {
return ext.match(/(doc|docx)$/i);
},
'xls': function(ext) {
return ext.match(/(xls|xlsx)$/i);
},
'ppt': function(ext) {
return ext.match(/(ppt|pptx)$/i);
},
'zip': function(ext) {
return ext.match(/(zip|rar|tar|gzip|gz|7z)$/i);
},
'htm': function(ext) {
return ext.match(/(htm|html)$/i);
},
'txt': function(ext) {
return ext.match(/(txt|ini|csv|java|php|js|css)$/i);
},
'mov': function(ext) {
return ext.match(/(avi|mpg|mkv|mov|mp4|3gp|webm|wmv)$/i);
},
'mp3': function(ext) {
return ext.match(/(mp3|wav)$/i);
},
}
}).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) {
//alert(9);
/*$.ajax({
type: "POST",
cache:false,
async : true,
dataType : "json",
url: "/uact/deletefile",
data: {fileid:key,type:'1012-0002'},
success: function(data){
console.log(data);
$('#fild-pd-recommend').fileinput('reset');
}
});*/
}).on('filedeleted', function(event, key, jqXHR, data) {
console.log('Key = ' + key);
}).on('filesuccessremove', function(event, id) {//上传成功后删除触发
alert(id);
}).on("fileuploaded", function(event, data, previewId, index) {
console.log(data);
});
}
fileinput在处理上传后删除回调时存在无法与后台匹配的id
原因为fileinput在前端删除后在回调时没有保留file的对象,导致file对象的id丢失,而生成了一个新的id
解决方案:http://blog.csdn.net/xumoqiu/article/details/53081352?locationNum=1&fps=1
列子:http://plugins.krajee.com/file-krajee-explorer-demo
bootstrap-3-上传图片-列表显示的更多相关文章
- JD-Store购物网站复盘——20170312
一.商店技术架构 1.主题 2.涉及技术点: 3.核心业务功能 4.角色 5.用户故事 二.实现步骤 专案基础设施 上传图片模块 购物车 订单 支付&寄信 专案源码 三.第三方服务应用 支付 ...
- asp.net+bootstrap上传图片+FileUpload控件文件上传下载
ps:我数据库使用的pgsql,看个人修改. 代码asp.net 的,使用了mootools框架,里面包含了bootstrap上传图片,查看预览,还加了个上传任意文件的FileUpload.(界面随便 ...
- Bootstrap上传图片
BootStrap上传需要用到Bootstrap-fileinput插件,有需要的可联系 先来看看bootstrap上传的界面 前台界面代码 <%@ page language="ja ...
- 上传图片 展示进度条 bootstrap
<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>Bo ...
- php ajax bootstrap多文件上传图片预览,ajax上传文件
<form enctype="multipart/form-data" id="upForm"> <label class="btn ...
- laravel5.5结合bootstrap上传插件fileinput 上传图片
引入相关js <script src="{{ asset('bootstrap-fileinput/js/fileinput.js') }}"></script& ...
- JS组件系列——Bootstrap文件上传组件:bootstrap fileinput
前言:之前的三篇介绍了下bootstrap table的一些常见用法,发现博主对这种扁平化的风格有点着迷了.前两天做一个excel导入的功能,前端使用原始的input type='file'这种标签, ...
- springmvc4 mybatis 整合 框架源码 bootstrap
A集成代码生成器 [正反双向(单表.主表.明细表.树形表,开发利器)+快速构建表单 下载地址 ; freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面.建表sql脚本,处理类 ...
- MVC4中基于bootstrap和HTML5的图片上传Jquery自定义控件
场景:mvc4中上传图片,批量上传,上传前浏览,操作.图片进度条. 解决:自定义jquery控件 没有解决:非图片上传时,会有浏览样式的问题; 解决方案; 1.样式 – bootstrap 的css和 ...
- ASP.Net MVC3 图片上传详解(form.js,bootstrap)
图片上传的插件很多,但很多时候还是不能切合我们的需求,我这里给大家分享个我用一个form,file实现上传四张图片的小demo.完全是用jquery前后交互,没有用插件. 最终效果图如下: 玩过花田人 ...
随机推荐
- Codeforces 653F Paper task SA
Paper task 如果不要求本质不同直接st表二分找出最右端, 然后计数就好了. 要求本质不同, 先求个sa, 然后用lcp求本质不同就好啦. #include<bits/stdc++.h& ...
- UOJ#62. 【UR #5】怎样跑得更快 数论 莫比乌斯反演
原文链接https://www.cnblogs.com/zhouzhendong/p/UOJ62.html 题解 太久没更博客了,该拯救我的博客了. $$\sum_{1\leq j \leq n} \ ...
- java读取配置文件方法以及工具类
第一种方式 : java工具类读取配置文件工具类 只是案例代码 抓取异常以后的代码自己处理 import java.io.FileNotFoundException; import java.io. ...
- Django中的Request和Response
接触Django这么久了,从来没有好好学习关于Django中的Request和Response对象.借着文件上传下载的相关工作,现在总结一下也不错. 当一个页面请求过来,Django会自动创建一个Re ...
- TF之RNN:matplotlib动态演示之基于顺序的RNN回归案例实现高效学习逐步逼近余弦曲线—Jason niu
import tensorflow as tf import numpy as np import matplotlib.pyplot as plt BATCH_START = 0 TIME_STEP ...
- ISP PIPLINE (一) BLC 以及 线性化
what is the BlackLevel? 暗电流来源1.raw8为例,单个pixel的有效值是0~255,但是实际AD芯片的精度可能无法将电压值很小的一部分转换出来,芯片厂会刻意添加一个固定的偏 ...
- new关键字对构造函数做了什么
new 命令 基本用法 new 命令的作用,就是执行构造函数,返回一个实例对象. 1 var Vehicle = function (){ 2 this.price = 1000; 3 }; 4 5 ...
- web前端知识大纲:系列一 js篇
web前端庞大而复杂的知识体系的组成:html.css和 javascript 一.js 1.基础语法 Javascript 基础语法包括:变量声明.数据类型. ...
- Tomcat安装与环境变量的配置
Tomacat的下载 去Tomcat官网下载,我使用的是apache-tomcat-7.0.78的版本. 安装 下载完成之后,我们解压缩到相应的目录.这里我解压缩到d盘下面 1.然后去配置系统的环 ...
- MongoError: Cannot update '__v' and '__v' at the same time,错误解决办法
1.讲查询的结果,原封不动的插入到另一个表中,结果报错了:MongoError: Cannot update '__v' and '__v' at the same time,起初认为是mongodb ...