bootstrap fileinput插件使用感悟

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代码如下:

[html] view plain copy

  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代码如下:

[javascript] view plain copy

  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代码如下:

[java] view plain copy

  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代码如下:

[javascript] view plain copy

  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. })

[javascript] view plain copy

  1. //初始化就调用该方法
  2. $(function () {
  3. initFileInput("file");
  4. })

java后台的代码:

[java] view plain copy

  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了,真是太坑了

时间: 2024-10-10 21:16:52

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

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

1.bootstrap-fileinpu的简单介绍 在前面的随笔,我介绍了Bootstrap-table表格插件的具体项目应用过程,本篇随笔介绍另外一个Bootstrap FieInput插件的使用,整合两者可以实现我们常规的Web数据导入操作,导入数据操作过程包括有上传文件,预览数据,选择并提交记录等一系列操作. 关于这个插件,我在早期随笔<Bootstrap文件上传插件File Input的使用>也做了一次介绍,这是一个增强的 HTML5 文件输入控件,是一个 Bootstrap 3.x

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

插件下载地址: https://github.com/kartik-v/bootstrap-fileinput/ 官方DEMO查看: http://plugins.krajee.com/file-basic-usage-demo JQ上传插件汇总:http://www.jq22.com/jquery-plugins%E4%B8%8A%E4%BC%A0-1-jq 图片预览上传插件bootstrap-fileinput.js http://www.jq22.com/jquery-info15397

JS文件上传神器bootstrap fileinput详解

Bootstrap FileInput插件功能如此强大,完全没有理由不去使用,但是国内很少能找到本插件完整的使用方法,于是本人去其官网翻译了一下英文说明文档放在这里供英文不好的同学勉强查阅.另外附上一段调用方发和servlet端的接收代码,未完待续. 引言: 一个强化的HTML5 文件输入插件,适用于Bootstrap 3.x.本插件对多种类型的文件提供文件预览,并且提供了多选等功能.本插件还提供给你一个简单的方式去安装一个先进的文件选择/上传控制版本去配合Bootstrap CSS3样式.通过

基于bootstrap的fileinput插件实现上传

用户头像上传的Demo 1.引入文件css文件 <link rel="stylesheet" href="../../libs/bootstrap-3.3.7/css/bootstrap.min.css"><!--引入bootstrap的css文件--> <link rel="stylesheet" href="../../libs/bootstrap-fileinput-master/css/filein

Bootstrap FileInput 多图上传插件 文档属性说明

Bootstrap FileInput 多图上传插件   原文链接:http://blog.csdn.net/misterwho/article/details/72886248?utm_source=itdadao&utm_medium=referral这货融合bootstrap框架,界面相当不错,api非常丰富,可定制内容能满足绝大数的场景. 最近在撸一个项目,用到它,花时间收集了一些文档,整理并翻译了部份内容.备用. github 地址 https://github.com/kartik-

Bootstrap fileinput v1.0(ssm版)

前言bootstrap fileinput是一个很好的文件上传插件.但是官方不出api,这就尴尬了.百度一下,每个人写法都不相同,好多代码本身都是错的.我修改后才能跑起来.综上所述:所以今天我摸索了一天,把今天能够跑的起来的程序核心代码贴上.完整demo在文章末尾github地址上基于本人习惯:所用前端控件均为2017年最新的.最后再唠叨一句:bootstrap不支持IE8极其以下的.没必要与IE较真,毕竟微软人家自己的win10都抛弃ie了.我们又何苦抓着不放呢 功能说明这个版本的功能比较单一

Bootstrap fileinput v3.0(ssm版)

说明在上一个版本即Bootstrap fileinput v2.0(ssm版)的基础上,增加了多处都需要上传的需求 核心代码ArticleController.java package com.isd.controller; import java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.util.HashMap; import java.util.List; import java

JS组件系列——Bootstrap文件上传组件:bootstrap fileinput

原文:JS组件系列--Bootstrap文件上传组件:bootstrap fileinput 前言:之前的三篇介绍了下bootstrap table的一些常见用法,发现博主对这种扁平化的风格有点着迷了.前两天做一个excel导入的功能,前端使用原始的input type='file'这种标签,效果不忍直视,于是博主下定决心要找一个好看的上传组件换掉它.既然bootstrap开源,那么社区肯定有很多关于它的组件,肯定也有这种常见的上传组件吧.经过一番查找,功夫不负有心人,还是被博主找到了这个组件:

Bootstrap fileinput.js,最好用的文件上传组件

本篇介绍如何使用bootstrap fileinput.js(最好用的文件上传组件)来进行图片的展示,上传,包括springMVC后端文件保存. 一.demo   二.插件引入 <link type="text/css" rel="stylesheet" href="${ctx}/components/fileinput/css/fileinput.css" /> <script type="text/javascri