bootstrap 上传图片插件 file-input 的简单使用

最近在写自己的个人网站 ,前端使用的bootstrap框架 ,做到上传图片功能的时候网上找到一个基于bootstrap的图片上传框架 file-input  插件, 这个插件做的非常符合我的审美观,所以简单记录一下这个插件的使用方法


首先根据自己的项目路径引入插件css和js文件


注意locale语言文件在fileinput.min.js文件之后引入

	<!-- file input -->
	<link href="../../css/fileinput.min.css" rel="stylesheet">
	<script src="../../js/fileinput.min.js"></script>
	<script src="../../js/locales/zh.js" type="text/javascript"></script>



然后是html代码  因为我不是专业前端 所以前端代码写的很烂 轻喷敲打  

    <!-- 模态框(Modal) -->
<span style="white-space:pre">	</span><div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<span style="white-space:pre">		</span><div class="modal-dialog">
<span style="white-space:pre">			</span><div class="modal-content">
<span style="white-space:pre">				</span><div class="modal-header">
<span style="white-space:pre">					</span><button type="button" class="close" data-dismiss="modal" aria-hidden="true">
<span style="white-space:pre">						</span>&times;
<span style="white-space:pre">					</span></button>
<span style="white-space:pre">					</span><h3 class="modal-title" id="myModalLabel" align="center">
<span style="white-space:pre">						</span><b>新增曲谱信息</b>
<span style="white-space:pre">					</span></h3>
<span style="white-space:pre">				</span></div>
<span style="white-space:pre">				</span><div class="modal-body">
<span style="white-space:pre">					</span><form id="addForm" class="bs-example bs-example-form" role="form" enctype="multipart/form-data"> 
<span style="white-space:pre">				</span>        <div class="input-group" style="width: 566px;"> 
<span style="white-space:pre">				</span>            <span class="input-group-addon">曲谱名称</span> 
<span style="white-space:pre">				</span>            <input type="text" id="scoreName" name="scoreName" class="form-control" placeholder=""> 
<span style="white-space:pre">				</span>        </div> 
<span style="white-space:pre">				</span>        <div class="input-group col-lg-5" style="display: inline-table; margin-top: 10px;"> 
<span style="white-space:pre">				</span>        <span style="white-space:pre">	</span><span class="input-group-addon">曲谱类型</span> 
<span style="white-space:pre">				</span>            <input type="text" id="type" name="type" class="form-control"> <span style="white-space:pre">			</span>            
<span style="white-space:pre">				</span>        </div> <span style="white-space:pre">	</span>
<span style="white-space:pre">				</span>        <div class="input-group col-lg-5" style="display: inline-table; margin-top: 10px;margin-left: 90px;"> 
<span style="white-space:pre">				</span>        <span style="white-space:pre">	</span><span class="input-group-addon">曲谱难度</span> 
<span style="white-space:pre">				</span>            <input type="text" id="difficulty"  name="difficulty" class="form-control"> <span style="white-space:pre">			</span>            
<span style="white-space:pre">				</span>        </div> 
<span style="white-space:pre">				</span>        <div class="input-group col-lg-5" style="margin-top: 10px;"> 
<span style="white-space:pre">				</span>            <span class="input-group-addon">曲调</span> 
<span style="white-space:pre">				</span>            <input type="text" id="tune" name="tune" class="form-control"> 
<span style="white-space:pre">				</span>        </div>
<span style="white-space:pre">				</span>        <div class="input-group" style="width: 566px; margin-top: 10px;"> 
<span style="white-space:pre">							</span><input id="fileup" type="file" class="file"/>
<span style="white-space:pre">				</span>        </div>
<span style="white-space:pre">					</span></form> 
<span style="white-space:pre">				</span></div>
<span style="white-space:pre">				</span><div class="modal-footer">
<span style="white-space:pre">					</span><button type="button" class="btn btn-default" data-dismiss="modal">关闭
<span style="white-space:pre">					</span></button>
<span style="white-space:pre">				</span><!-- <span style="white-space:pre">	</span><button type="button" class="btn btn-primary" οnclick="addScores()">
<span style="white-space:pre">						</span>提交
<span style="white-space:pre">					</span></button> -->
<span style="white-space:pre">				</span></div>
<span style="white-space:pre">			</span></div><!-- /.modal-content -->
<span style="white-space:pre">		</span></div><!-- /.modal -->
<span style="white-space:pre">	</span></div>
		


然后是js代码 初始化file-input

	//初始化fileinput控件(第一次初始化)
	  function initFileInput(ctrlName, uploadUrl) {    
	      var control = $('#' + ctrlName); 
	      

	      control.fileinput({
	          language: 'zh', //设置语言
	          uploadUrl: uploadUrl, //上传的地址
	          allowedFileExtensions : ['jpg', 'png','gif'],//接收的文件后缀
	          showUpload: true, //是否显示上传按钮
	          showCaption: false,//是否显示标题
	          browseClass: "btn btn-primary", //按钮样式             
	          previewFileIcon: "<i class='glyphicon glyphicon-king'></i>", 
	          uploadAsync: false,
	          uploadExtraData:function (previewId, index) {
	        	    var obj = {};
	        	    $('#addForm').find('input').each(function() {
	        	        var id = $(this).attr('id'), val = $(this).val();
	        	        obj[id] = val;
	        	    });
	        	    return obj;
	        	}
	       }); 
	}

	 //初始化fileinput
	initFileInput("fileup", "http://localhost:8080/web/guita/addGuitaInfo.action");

这段代码是插件的核心了  

upLoadUrl是后台给的访问路径了

这里特别要注意的是这一段

    uploadExtraData:function (previewId, index) {
	        	    var obj = {};
	        	    $('#addForm').find('input').each(function() {
	        	        var id = $(this).attr('id'), val = $(this).val();
	        	        obj[id] = val;
	        	    });
	        	    return obj;
	        	}



这一段代码uploadExtraData适用于传额外参数是 可以用于提交form表单的其他input框数据

	   uploadExtraData:{
		   type:"type",
		   tune:"tune"
	   }



一般的静态数据如上图提交 后台就可以直接接到了  但是这样写会得不到动态数据  数据只会在初始化的时候生成一次 之后不会改变

这个问题纠结了我不少时间  最后是在git上面看外国朋友们的讨论 然后参考api才解决掉



这些写好之后就可以看到效果图了



样式还是很不错的  点击上传之后 整个from的数据都会提交到后台

在网上找的很多该插件的应用整合的都是php   我是用java写的这里也上一下后台接收的代码  springmvc框架接收数据还是很方便的





这样就完成了数据参数和图片参数的传递了 然后后台调用文件上传的代码存入图片即可   

该插件该有很多值得研究的用法  这里只是简单的说一下使用方式并完成动态数据的传输 刚刚接触这个插件的朋友们可以稍微做一下参考




  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
若依(Jui)是基于Bootstrap框架的前端UI库,而Bootstrap-table是一个用于显示数据表格的件。如果想要在Bootstrap-table中实现多张图片的预览,你可以使用件如Bootstrap-fileinput或图片懒加载(lazy loading)技术结合。 以下是基本步骤: 1. 首先,引入Bootstrap-table和所需的图片预览件库,比如Bootstrap-fileinput: ```html <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/bootstrap-fileinput/5.3.1/css/fileinput.min.css"> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/bootstrap/5.1.3/js/bootstrap.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap-fileinput@5.3.1/dist/js/fileinput.min.js"></script> ``` 2. 在HTML结构中,为每个图片字段添加`data-file-input`属性来启用预览功能: ```html <table id="myTable" data-pagination="true" data-height="400"> <thead> <!-- ... --> </thead> <tbody> <tr> <td data-field="image" data-events="fileupload" data-url="api/upload-image">上图片</td> <!-- 使用件提供的控件,如:<input type="hidden" name="file" value=""> --> </tr> <!-- ... --> </tbody> </table> ``` 3. 使用Bootstrap-fileinput的JavaScript初始化表格和图片预览: ```javascript $('#myTable').bootstrapTable({ // ...其他配置 events: { 'click .fileinput': function(e, val) { $(this).fileinput('upload'); }, 'fileupload.bs.fileinput': function(e, file, previewId, index) { // 图片成功后,替换隐藏域的值并更新显示 $('#myTable').find('[data-field=image]').val(file.url); } } }); ``` 4. 为了实现图片预览,你可能还需要编写一个服务器端处理程序(例如API),返回文件的缩略图或者链接,然后在前端展示图片

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值