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. 【BZOJ1090】[SCOI2003]字符串折叠(动态规划)

    [BZOJ1090][SCOI2003]字符串折叠(动态规划) 题面 BZOJ 洛谷 题解 区间\(dp\).设\(f[i][j]\)表示压缩\([i,j]\)区间的最小长度.显然可以枚举端点转移.再 ...

  2. 洛谷 P2607 [ZJOI2008]骑士 解题报告

    P2607 [ZJOI2008]骑士 题目描述 Z国的骑士团是一个很有势力的组织,帮会中汇聚了来自各地的精英.他们劫富济贫,惩恶扬善,受到社会各界的赞扬. 最近发生了一件可怕的事情,邪恶的Y国发动了一 ...

  3. hdu5583

    #include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> ...

  4. LSTM介绍

    转自:https://blog.csdn.net/gzj_1101/article/details/79376798 LSTM网络 long short term memory,即我们所称呼的LSTM ...

  5. saltstack主机管理项目【day39】:主机管理项目开发

    项目目标 salt state.apply -h "ubuntu,centos" -g "ubuntu,centos" -f "ubuntu,cent ...

  6. sqlserver运行脚本数据出现 内存不足的解决办法

    但是当数据库导出脚本很大,用Microsoft SQL Server Management Studio执行脚本时,往往会遇到“内存不足”的提示. 解决办法: 用微软自带的sqlcmd工具,可以导入执 ...

  7. ThinkPHP框架学习(二)

    在上一节中,我主要讲到了如何获取ThinkPHP框架,以及虚拟目录和虚拟主机的配置.准备工作完成之后,就可以利用ThinkPHP去部署项目了. 先在工作目录(D:/zend/workspace)下新建 ...

  8. Bugfree——CentOS6.8搭建测试环境

    参考资料:http://blog.csdn.net/qq_29227939/article/details/52295917 BugFree基于PHP和MySQL开发,是免费且开发源代码的缺陷管理系统 ...

  9. bzoj千题计划205:bzoj1966: [Ahoi2005]VIRUS 病毒检测

    http://www.lydsy.com/JudgeOnline/problem.php?id=1966 f[i][j] 表示s的前i个和t的前j个是否匹配 转移看代码 注意初始化: f[0][0]= ...

  10. bzoj千题计划183:bzoj1197: [HNOI2006]花仙子的魔法

    http://www.lydsy.com/JudgeOnline/problem.php?id=1197 题意转化:在n维空间中放m个n维球,问最多将空间分成几部分 f[i][j] 表示在i维空间中放 ...