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. idea中 读取mybatis的配置文件时候 如果放在文件下面 需要加上路径

  2. LOJ#551 Matrix

    本地打表在线AC什么的最喜欢了. 题意 \(\rm Alice\)和\(\rm Bob\)在玩游戏,他们要给一个\(n\times n\)的矩阵打标记.初始时没有任何标记,每一轮\(\rm Bob\) ...

  3. SSM 关于service和dao的封装

    近期由于客户需求,所以我们整个小组开始开发java项目. 虽然很久以前也是系统学习过.不过干了这么多年 .net  ,有关java的早就扔了. 好了,废话不多说.我们看看SSM 关于service和d ...

  4. 【刷题】LOJ 6009 「网络流 24 题」软件补丁

    题目描述 某公司发现其研制的一个软件中有 \(n\) 个错误,随即为该软件发放了一批共 \(m\) 个补丁程序.每一个补丁程序都有其特定的适用环境,某个补丁只有在软件中包含某些错误而同时又不包含另一些 ...

  5. 【BZOJ1077】天平(差分约束)

    [BZOJ1077]天平(差分约束) 题面 BZOJ 洛谷 题解 利用矩阵可以很容易得到两个点之间的最大差和最小差,再利用这个信息判断即可.差分约束用\(Floyd\)计算.时间复杂度\(O(n^3) ...

  6. 【Treap 例题】神秘岛(island)

    神秘岛(island) 题目描述: 除了敲代码和撩妹,旅行是cxw123 的第三爱好.他来到了澳大利亚东北部的大宝礁,在这里,有一个隔绝人世的神秘岛,这个岛不同于附近其他的珊瑚岛,它的生长速度极快,甚 ...

  7. 解题:SCOI 2007 蜥蜴

    题面 拆点跑最大流 所有能跑出去的点连向汇点,容量为inf 原点连向所有初始有蜥蜴的点,容量为1 每根柱子拆成两个点“入口”和“出口”,入口向出口连容量为高度的边,出口向别的有高度的柱子的入口连容量为 ...

  8. 各种蕴含算法思想的DP - 3

    内容中包含 base64string 图片造成字符过多,拒绝显示

  9. Access时间日期函数大全

    这里特别推荐WeekdayName() 函数.MonthName() 函数,将日期转换为中文星期名与月份,如"星期一"."五月"一.Date() 函数.Now( ...

  10. Excel:公式中的这些特殊数字

    19E+307 9E+307是科学计数法表示的一个数字,就简单理解成是Excel支持的一个很大的数字就可以了. 用法示例: =LOOKUP(9E+307,A:A) 根据LOOKUP函数的性质,提取A列 ...