bootstrap fileinput 的填坑感悟
             这个插件在demo的网站地址http://plugins.krajee.com/file-preview-icons-demo;不得不承认这个插件很强大,作为一个文件上传插件做到了预览,而且还支持国际化,但是唯一的缺点就是api烂的到极点(应该说没有API)。
        即使没有API,也不能阻挡我使用的热情,即时前方再多的坑也被我一一填满。希望我这篇文章对于初学者有点帮助。废话不多说,开始填坑之旅。
        第一步开始知道需要应用的文件:
          css:<link rel="stylesheet" href="http://apps.bdimg.com/libs/bootstrap/3.3.0/css/bootstrap.min.css">
           <link href="${base}/style/admin/css/fileinput.min.css" rel="stylesheet" />
           js:    <script type="text/javascript" src="${base}/plugin/umeditor1_2_2/third-party/jquery.min.js"></script>
           <script type="text/javascript" src="${base}/style/admin/js/fileinput.min.js"></script>
           <script type="text/javascript" src="${base}/style/admin/js/fileinput_locale_zh.js"></script>
           <script src="http://apps.bdimg.com/libs/bootstrap/3.3.0/js/bootstrap.min.js"></script>
             简单说明下css文件需要Bootstrap的css文件和该插件的css文件,js文件里导入fileinput_locale_zh.js,是为了支持中文,如果你的网站是支持国际化的,那还需要导入各国的js(这些都可以在这个插件的官方下载到,常见的国家都有),jsp代码如下:
  1. <div class="form-group">
  2. <label class="col-sm-2 control-label">图片上传:</label>
  3. <div class="col-sm-4">
  4. <input id="file" name="myfile" type="file" data-show-caption="true">
  5. <p class="help-block">支持jpg、jpeg、png格式,大小不超过2.0M</p>
  6. </div>
  7. </div>
        导入后第二步要写js初始化这个插件,js代码如下:

  1. function initFileInput(ctrlName,uploadUrl) {
  2. var control = $('#' + ctrlName);
  3. control.fileinput({
  4. language: 'zh', //设置语言
  5. uploadUrl: uploadUrl,  //上传地址
  6. showUpload: false, //是否显示上传按钮
  7. showRemove:true,
  8. dropZoneEnabled: false,
  9. showCaption: true,//是否显示标题
  10. allowedPreviewTypes: ['image'],
  11. allowedFileTypes: ['image'],
  12. allowedFileExtensions:  ['jpg', 'png'],
  13. maxFileSize : 2000,
  14. maxFileCount: 1,
  15. //initialPreview: [
  16. //预览图片的设置
  17. //      "<img src='http://127.0.0.1:8080/NewsManageSys/plugin/umeditor1_2_2/jsp/upload/20161030/55061                       477813913474.jpg' class='file-preview-image' alt='肖像图片' title='肖像图片'>",
  18. //],
  19. }).on("filebatchselected", function(event, files) {
  20. $(this).fileinput("upload");
  21. })
  22. .on("fileuploaded", function(event, data) {
  23. $("#path").attr("value",data.response);
  24. });
  25. }
  26. $(function () {
  27. var path="${base}/admin/product/upload.htm";
  28. initFileInput("file",path);
  29. })

这是异步上传的js代码,而且还是选择图片自动上传的,当然你也可以修改这个js改为显示上传按钮,点击上传按钮才上传。因为该插件的异步上传是ajax提交,后台spring就按照ajax提交获取它的提交。java代码如下:

  1. /**
  2. *
  3. * 方法名: upload
  4. * 方法作用: 文件异步上传
  5. * 创建人:Wu Feng
  6. * 创建时间:2016-11-9 下午10:16:36
  7. * @param @param request
  8. * @param @param product
  9. * @param @return
  10. * 返回值类型: String
  11. * @throws
  12. */
  13. @ResponseBody
  14. @RequestMapping("/upload")
  15. public String upload(MultipartHttpServletRequest request,Product product) {
  16. //存放地址
  17. String path=productService.upload(request);
  18. return path;
  19. }

将文件上传后,返回文件的路径,js代码:  $("#path").attr("value",data.response);将路径返回,赋值页面隐藏的路径字段。然后点击确定把数据插入进去。

             如果是同步提交,需要设置该插件配置参数uploadAsync,因为该插件默认是异步提交,因此把它设为false就行。js代码如下:
  1. function initFileInput(ctrlName) {
  2. var control = $('#' + ctrlName);
  3. control.fileinput({
  4. language: 'zh', //设置语言
  5. showUpload: false, //是否显示上传按钮
  6. showRemove:true,
  7. dropZoneEnabled: false,
  8. showCaption: true,//是否显示标题
  9. allowedPreviewTypes: ['image'],
  10. allowedFileTypes: ['image'],
  11. allowedFileExtensions:  ['jpg', 'png'],
  12. maxFileSize : 2000,
  13. maxFileCount: 1,
  14. uploadAsync: false, //同步上传
  15. //initialPreview: [
  16. //预览图片的设置
  17. //      "<img src='http://127.0.0.1:8080/NewsManageSys/plugin/umeditor1_2_2/jsp/upload/20161030/55061                  477813913474.jpg' class='file-preview-image' alt='肖像图片' title='肖像图片'>",
  18. //],
  19. })
  1. //初始化就调用该方法
  2. $(function () {
  3. initFileInput("file");
  4. })

java后台的代码:

  1. /**
  2. *
  3. * 方法名: save
  4. * 方法作用: 产品保存
  5. * 创建人:Wu Feng
  6. * 创建时间:2016-11-9 下午07:26:08
  7. * @param @param request
  8. * @param @param news
  9. * @param @return
  10. * 返回值类型: String
  11. * @throws
  12. */
  13. @RequestMapping("/save")
  14. public String save(MultipartHttpServletRequest request,Product product) {
  15. //存放地址
  16. String path=productService.upload(request);
  17. product.setPath(path);
  18. //存入产品信息
  19. productService.insert(product);
  20. return "redirect:/admin/product/add.htm";
  21. }

我这里采用的是同步提交,当用户选择文件后,就只有点击确定提交,而不是点击上传后,在点击确定提交,这样省去了一部操作,也是极大的方便。

            说到这里,大家觉得并没有坑,其实坑很多,比如我碰到了显示的一直都是英文,不是因为我没有导入fileinput_locale_zh.js,网上一查,原来是没有去掉class=“file”,非常感谢这个网站:点击打开链接,第二个坑就是我不想要显示拖拽区域,因为我喜欢简单点,那样我觉得太难看了,这时候你需要知道全部的配置信息,这里感谢这位csdn好友提供了配置信息(很给力)。网站地址如下:点击打开链接
            是不是该结束了,并没有,细心你的会发现,那我们编辑产品信息的时候,需要看他上传的产品图片,这个也简单,你只要在我注释的代码里写上图片地址就行了。附上我的劳动成品:

 
转:http://blog.csdn.net/u012157999/article/details/53150845
 

bootstrap-fileinput 不显示中文问题

我引入了本地js文件,但是还是不显示中文,求教,在线等

<script src="//cdn.bootcss.com/bootstrap-fileinput/4.3.5/js/fileinput.min.js"></script>
<script src="https://cdn.bootcss.com/bootstrap-fileinput/4.3.5/js/locales/zh.min.js"></script>
function initFileInput() {
var projectfileoptions = {
language : 'zh'
}
$("#input-id").fileinput(projectfileoptions);
}

解决方法:

已经解决了,原因是我的html是写成这样<input type="file" class="file">,结果去掉这个class就OK了,真是太坑了

bootstrap fileinput插件使用感悟的更多相关文章

  1. 结合bootstrap fileinput插件和Bootstrap-table表格插件,实现文件上传、预览、提交的导入Excel数据操作流程

    1.bootstrap-fileinpu的简单介绍 在前面的随笔,我介绍了Bootstrap-table表格插件的具体项目应用过程,本篇随笔介绍另外一个Bootstrap FieInput插件的使用, ...

  2. ***Bootstrap FileInput插件的使用经验汇总

    插件下载地址: https://github.com/kartik-v/bootstrap-fileinput/ 官方DEMO查看: http://plugins.krajee.com/file-ba ...

  3. bootstrap+fileinput插件实现可预览上传照片功能

    实际项目中运用: 功能:实现上传图片,更改上传图片,移除图片的功能 <!DOCTYPE html> <html> <head> <meta charset=& ...

  4. 导入Excel 文件(图片和文字)NPOI+BootStrap fileinput 插件 的结合使用

    1.页面代码: <!DOCTYPE html><html><head> <meta name="viewport" content=&qu ...

  5. BootStrap FileInput 插件实现多文件上传前端功能

    <!DOCTYPE html> <html> <head> <title>文件上传</title> <meta charset=&qu ...

  6. JS文件上传神器bootstrap fileinput详解

    Bootstrap FileInput插件功能如此强大,完全没有理由不去使用,但是国内很少能找到本插件完整的使用方法,于是本人去其官网翻译了一下英文说明文档放在这里供英文不好的同学勉强查阅.另外附上一 ...

  7. Bootstrap FileInput中文API整理

    这段时间做项目用到bootstrap fileinput插件上传文件,在用的过程中,网上能查到的api都不是很全,所以想着整理一份比较详细的文档,方便自己今后使用,也希望能给大家带来帮助,如有错误,希 ...

  8. Bootstrap FileInput中文API文档

    Bootstrap FileInput中文API整理 这段时间做项目用到bootstrap fileinput插件上传文件,在用的过程中,网上能查到的api都不是很全,所以想着整理一份比较详细的文档, ...

  9. 【转】Bootstrap FileInput中文API整理

    Bootstrap FileInput中文API整理 这段时间做项目用到bootstrap fileinput插件上传文件,在用的过程中,网上能查到的api都不是很全,所以想着整理一份比较详细的文档, ...

随机推荐

  1. 初识Java Enum

    enum 的全称为 enumeration, 是 JDK 1.5  中引入的新特性,存放在 java.lang 包中. enum是关键字,感觉它跟class.interface是并列的,并且不能跟fi ...

  2. 洛谷 P2527 [SHOI2001]Panda的烦恼 解题报告

    P2527 [SHOI2001]Panda的烦恼 题目描述 panda是个数学怪人,他非常喜欢研究跟别人相反的事情.最近他正在研究筛法,众所周知,对一个范围内的整数,经过筛法处理以后,剩下的全部都是质 ...

  3. suoi31 最近公共祖先2 (倍增lca)

    根为r时x.y的公共祖先,就是lca(x,r),lca(x,y),lca(r,y)中深度最大的那一个,不要再在倍增的时候判来判去还判不对了... #include<bits/stdc++.h&g ...

  4. bzoj 3195 [Jxoi2012]奇怪的道路

    3195: [Jxoi2012]奇怪的道路 Description 小宇从历史书上了解到一个古老的文明.这个文明在各个方面高度发达,交通方面也不例外.考古学家已经知道,这个文明在全盛时期有n座城市,编 ...

  5. [SCOI2014]方伯伯的商场之旅

    Description 方伯伯有一天去参加一个商场举办的游戏.商场派了一些工作人员排成一行.每个人面前有几堆石子.说来也巧,位置在 i 的人面前的第 j 堆的石子的数量,刚好是 i 写成 K 进制后的 ...

  6. StringEscapeUtils的常用使用,防止SQL注入及XSS注入

    StringEscapeUtils的常用使用,防止SQL注入及XSS注入 2017年10月20日 11:29:44 小狮王 阅读数:8974   版权声明:本文为博主原创文章,转载请注明出处. htt ...

  7. 形参与实参的区别---java基础

    1.形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元.因此,形参只在函数内部有效.函数调用结束返回主调用函数后则不能再使用该形参变量.2.实参可以是常量.变量.表达式.函数 ...

  8. python数据分析Numpy(二)

    Numpy (Numerical Python) 高性能科学计算和数据分析的基础包: ndarray,多维数组(矩阵),具有矢量运算能力,快速.节省空间: 矩阵运算,无需循环,可以完成类似Matlab ...

  9. 小记 HTML5 file对象

    <input type="file" id="myfile" multiple> 这是个很普通的 file 上传组件,multiple 是支持多选, ...

  10. Asp.Net中索引器的用法

    索引器定义类似于属性,但其功能与属性并不相同.索引器提供一种特殊的方法编写get和set访问器.属性可以像访问字段一样访问对象的数据,索引器可以使用户像访问数组一样访问类成员. 一.索引器特性 1.g ...