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

来源:互联网 发布:淘宝二楼是什么 编辑:程序博客网 时间:2024/05/25 18:12

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


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


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

[html] view plain copy
  1. <!-- file input -->  
  2. <link href="../../css/fileinput.min.css" rel="stylesheet">  
  3. <script src="../../js/fileinput.min.js"></script>  
  4. <script src="../../js/locales/zh.js" type="text/javascript"></script>  



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

[html] view plain copy
  1.     <!-- 模态框(Modal) -->  
  2. <span style="white-space:pre">    </span><div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">  
  3. <span style="white-space:pre">        </span><div class="modal-dialog">  
  4. <span style="white-space:pre">            </span><div class="modal-content">  
  5. <span style="white-space:pre">                </span><div class="modal-header">  
  6. <span style="white-space:pre">                    </span><button type="button" class="close" data-dismiss="modal" aria-hidden="true">  
  7. <span style="white-space:pre">                        </span>&times;  
  8. <span style="white-space:pre">                    </span></button>  
  9. <span style="white-space:pre">                    </span><h3 class="modal-title" id="myModalLabel" align="center">  
  10. <span style="white-space:pre">                        </span><b>新增曲谱信息</b>  
  11. <span style="white-space:pre">                    </span></h3>  
  12. <span style="white-space:pre">                </span></div>  
  13. <span style="white-space:pre">                </span><div class="modal-body">  
  14. <span style="white-space:pre">                    </span><form id="addForm" class="bs-example bs-example-form" role="form" enctype="multipart/form-data">   
  15. <span style="white-space:pre">                </span>        <div class="input-group" style="width: 566px;">   
  16. <span style="white-space:pre">                </span>            <span class="input-group-addon">曲谱名称</span>   
  17. <span style="white-space:pre">                </span>            <input type="text" id="scoreName" name="scoreName" class="form-control" placeholder="">   
  18. <span style="white-space:pre">                </span>        </div>   
  19. <span style="white-space:pre">                </span>        <div class="input-group col-lg-5" style="display: inline-table; margin-top: 10px;">   
  20. <span style="white-space:pre">                </span>        <span style="white-space:pre">   </span><span class="input-group-addon">曲谱类型</span>   
  21. <span style="white-space:pre">                </span>            <input type="text" id="type" name="type" class="form-control"> <span style="white-space:pre">            </span>              
  22. <span style="white-space:pre">                </span>        </div> <span style="white-space:pre">  </span>  
  23. <span style="white-space:pre">                </span>        <div class="input-group col-lg-5" style="display: inline-table; margin-top: 10px;margin-left: 90px;">   
  24. <span style="white-space:pre">                </span>        <span style="white-space:pre">   </span><span class="input-group-addon">曲谱难度</span>   
  25. <span style="white-space:pre">                </span>            <input type="text" id="difficulty"  name="difficulty" class="form-control"> <span style="white-space:pre">          </span>              
  26. <span style="white-space:pre">                </span>        </div>   
  27. <span style="white-space:pre">                </span>        <div class="input-group col-lg-5" style="margin-top: 10px;">   
  28. <span style="white-space:pre">                </span>            <span class="input-group-addon">曲调</span>   
  29. <span style="white-space:pre">                </span>            <input type="text" id="tune" name="tune" class="form-control">   
  30. <span style="white-space:pre">                </span>        </div>  
  31. <span style="white-space:pre">                </span>        <div class="input-group" style="width: 566px; margin-top: 10px;">   
  32. <span style="white-space:pre">                            </span><input id="fileup" type="file" class="file"/>  
  33. <span style="white-space:pre">                </span>        </div>  
  34. <span style="white-space:pre">                    </span></form>   
  35. <span style="white-space:pre">                </span></div>  
  36. <span style="white-space:pre">                </span><div class="modal-footer">  
  37. <span style="white-space:pre">                    </span><button type="button" class="btn btn-default" data-dismiss="modal">关闭  
  38. <span style="white-space:pre">                    </span></button>  
  39. <span style="white-space:pre">                </span><!-- <span style="white-space:pre">   </span><button type="button" class="btn btn-primary" onclick="addScores()">  
  40. <span style="white-space:pre">                        </span>提交  
  41. <span style="white-space:pre">                    </span></button> -->  
  42. <span style="white-space:pre">                </span></div>  
  43. <span style="white-space:pre">            </span></div><!-- /.modal-content -->  
  44. <span style="white-space:pre">        </span></div><!-- /.modal -->  
  45. <span style="white-space:pre">    </span></div>  
  46.           


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

[html] view plain copy
  1. //初始化fileinput控件(第一次初始化)  
  2.   function initFileInput(ctrlName, uploadUrl) {      
  3.       var control = $('#' + ctrlName);   
  4.         
  5.   
  6.       control.fileinput({  
  7.           language: 'zh', //设置语言  
  8.           uploadUrl: uploadUrl, //上传的地址  
  9.           allowedFileExtensions : ['jpg', 'png','gif'],//接收的文件后缀  
  10.           showUpload: true, //是否显示上传按钮  
  11.           showCaption: false,//是否显示标题  
  12.           browseClass: "btn btn-primary", //按钮样式               
  13.           previewFileIcon: "<i class='glyphicon glyphicon-king'></i>",   
  14.           uploadAsync: false,  
  15.           uploadExtraData:function (previewId, index) {  
  16.                 var obj = {};  
  17.                 $('#addForm').find('input').each(function() {  
  18.                     var id = $(this).attr('id'), val = $(this).val();  
  19.                     obj[id] = val;  
  20.                 });  
  21.                 return obj;  
  22.             }  
  23.        });   
  24. }  
  25.   
  26.  //初始化fileinput  
  27. initFileInput("fileup", "http://localhost:8080/web/guita/addGuitaInfo.action");  

这段代码是插件的核心了  

upLoadUrl是后台给的访问路径了

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

[html] view plain copy
  1. uploadExtraData:function (previewId, index) {  
  2.             var obj = {};  
  3.             $('#addForm').find('input').each(function() {  
  4.                 var id = $(this).attr('id'), val = $(this).val();  
  5.                 obj[id] = val;  
  6.             });  
  7.             return obj;  
  8.         }  



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

[html] view plain copy
  1. uploadExtraData:{  
  2.  type:"type",  
  3.  tune:"tune"  
  4. }  



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

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



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



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

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





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

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

0 0
原创粉丝点击