1.首先我们下载好fileinput插件引入插件

1
2
3
<span style="font-size:14px;"><link type="text/css" rel="stylesheet" href="fileinput/css/fileinput.css" rel="external nofollow" />
<script type="text/javascript" src="fileinput/js/fileinput.js"></script>
<script type="text/javascript" src="fileinput/js/fileinput_locale_zh.js"></script></span>

2.html设置:

1
2
3
<span style="font-size:14px;"><form enctype="multipart/form-data">
  <input id="file-file" class="file" type="file" multiple>
</form></span>

3.初始化设置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function initFileInput(ctrlName, uploadUrl) {
      var control = $('#' + ctrlName);
      control.fileinput({
        resizeImage : true,
        maxImageWidth : 200,
        maxImageHeight : 200,
        resizePreference : 'width',
        language : 'zh', //设置语言
        uploadUrl : uploadUrl,
        uploadAsync : true,
        allowedFileExtensions : [ 'jpg', 'png', 'gif' ],//接收的文件后缀
        showUpload : true, //是否显示上传按钮
        showCaption : true,//是否显示标题
        browseClass : "btn btn-primary", //按钮样式
        previewFileIcon : "<i class='glyphicon glyphicon-king'></i>",
        maxFileCount : 3,
        msgFilesTooMany : "选择图片超过了最大数量",
        maxFileSize : 2000,
      });
    };
   //初始化控件initFileInput(id,uploadurl)控件id,与上传路径
    initFileInput("file-file", "/tqyh/pushMessAction");

注:要想使用控件自带的upload按钮,以及上传进度,必须用form包裹
(当然也可以在初始化的时加入 enctype: 'multipart/form-data',是一样的)但不用定义action

1
2
3
<strong><form enctype="multipart/form-data">
  <input id="file-file" class="file" type="file" multiple>
</form></strong>

最后通过后台进行正常的上传就好了。

有些朋友说我没写明白,好吧我把后台代码贴出:

servlet:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@Override
ublic void doPost(HttpServletRequest request, 
       HttpServletResponse response)
       throws ServletException, java.io.IOException {
    String path = request.getSession().getServletContext().getRealPath("/headUpload");
  UploadMediaService upload=new UploadMediaService();
  String headimage=upload.getMeiaName(path, request);
  request.getSession().setAttribute("headname",headimage );
  System.out.println("文件上传成功");
 }
 @Override
ublic void doGet(HttpServletRequest request, 
           HttpServletResponse response)
    throws ServletException, java.io.IOException {
  doPost( request, response);
 }

其实后台不用可以接收,我们通过解析request就能获取一个或者多个上传的文件。上面代码主要核心代码:

1
2
3
<span style="font-size:14px;">String path = request.getSession().getServletContext().getRealPath("/headUpload");
      UploadMediaService upload=new UploadMediaService();
      String headimage=upload.getMeiaName(path, request);</span>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<span style="font-size:14px;">UploadMediaService :
/**
   * 上传媒体文件,存储在服务端
   *
   * @param path 获取文件需要上传到的路径 
   * @param request 客户端请求
   * @return
   */
  public static String uploadLocalMedia(String path,HttpServletRequest request){
    String filename =""
     //获得磁盘文件条目工厂 
    DiskFileItemFactory factory = new DiskFileItemFactory(); 
    //如果没以下两行设置的话,上传大的 文件 会占用 很多内存, 
    //设置暂时存放的 存储室 , 这个存储室,可以和 最终存储文件 的目录不同 
    /**
     * 原理 它是先存到 暂时存储室,然后在真正写到 对应目录的硬盘上, 
     * 按理来说 当上传一个文件时,其实是上传了两份,第一个是以 .tem 格式的 
     * 然后再将其真正写到 对应目录的硬盘上
     */ 
    factory.setRepository(new File(path)); 
    //设置 缓存的大小,当上传文件的容量超过该缓存时,直接放到 暂时存储室 
    factory.setSizeThreshold(1024*1024) ; 
    //高水平的API文件上传处理 
    ServletFileUpload upload = new ServletFileUpload(factory); 
    try
      //可以上传多个文件 
      List<FileItem> list = upload.parseRequest(request); 
      for(FileItem item : list) { 
        //如果获取的 表单信息是普通的 文本 信息 
        if(item.isFormField()) {           
          //获取用户具体输入的字符串 ,名字起得挺好,因为表单提交过来的是 字符串类型的 
          String value = item.getString() ; 
        } else
          //对传入的非 简单的字符串进行处理 ,比如说二进制的 图片,视频这些 
          /**
           * 以下三步,主要获取 上传文件的名字
           */ 
          //获取路径名 
          String value = item.getName() ; 
          //索引到最后一个反斜杠 
          int start = value.lastIndexOf("\\"); 
          //截取 上传文件的 字符串名字,加1是 去掉反斜杠, 
          filename = value.substring(start+1); 
          System.out.println("filename="+ filename);
          //真正写到磁盘上 
          //它抛出的异常 用exception 捕捉 
          //item.write( new File(path,filename) );//第三方提供的 
          //手动写的 
          OutputStream out = new FileOutputStream(new File(path,filename)); 
          InputStream in = item.getInputStream() ; 
          int length = 0 ; 
          byte [] buf = new byte[1024] ; 
          // in.read(buf) 每次读到的数据存放在  buf 数组中 
          while( (length = in.read(buf) ) != -1) { 
            //在  buf 数组中 取出数据 写到 (输出流)磁盘上 
            out.write(buf, 0, length);  
          
          in.close(); 
          out.close(); 
        
      
    } catch (FileUploadException e) { 
      log.error("文件上传异常:",e);
    } catch (Exception e) { 
      log.error("文件处理IO异常:",e);
    
    return filename ;
  }
</span>

以上所述是小编给大家介绍的BootStrap fileinput.js文件上传组件实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

原文链接:http://blog.csdn.net/u010288264/article/details/51276149

BootStrap fileinput.js文件上传组件实例代码的更多相关文章

  1. jQuery.uploadify文件上传组件实例讲解

    1.jquery.uploadify简介 在ASP.NET中上传的控件有很多,比如.NET自带的FileUpload,以及SWFUpload,Uploadify等等,尤其后面两个控件的用户体验比较好, ...

  2. JAVA中使用FTPClient实现文件上传下载实例代码

    一.上传文件 原理就不介绍了,大家直接看代码吧 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 ...

  3. Bootstrap fileinput:文件上传插件的基础用法

    官网地址:http://plugins.krajee.com/ 官网提供的样例:http://plugins.krajee.com/file-input/demo 基础用法一 导入核心CSS及JS文件 ...

  4. ASP中文件上传组件ASPUpload介绍和使用方法

    [导读]要实现该功能,就要利用一些特制的文件上传组件.文件上传组件网页非常多,这里介绍国际上非常有名的ASPUpload组件 1 下载和安装ASPUpload  要实现该功能,就要利用一些特制的文件上 ...

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

    本篇介绍如何使用bootstrap fileinput.js(最好用的文件上传组件)来进行图片的展示,上传,包括springMVC后端文件保存. 一.demo   二.插件引入 <link ty ...

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

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

  7. js文件上传下载组件

    在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 先说下要求: PC端全平台支持,要求支持Windows,Mac,Linux 支持所 ...

  8. Vue.js 3.0搭配.NET Core写一个牛B的文件上传组件

    在开发Web应用程序中,文件上传是经常用到的一个功能. 在Jquery时代,做上传功能,一般找jQuery插件就够了,很少有人去探究上传文件插件到底是怎么做的. 简单列一下我们要做的技术点和功能点 使 ...

  9. vue大文件上传组件选哪个好?

    需求:项目要支持大文件上传功能,经过讨论,初步将文件上传大小控制在500M内,因此自己需要在项目中进行文件上传部分的调整和配置,自己将大小都以501M来进行限制. 第一步: 前端修改 由于项目使用的是 ...

随机推荐

  1. Redis的核心Hystrix在Spring mvc的使用

    核心Hystrix,Hystrix对于接口调用具有很好的保护,能在多服务依赖的分布式系统中,有效的提供应用的可用性,并且对失败应用进行熔断和恢复检查,让应用在复杂的环境中也能各种稳. http://t ...

  2. c#public、private、protected、internal、protected internal

    public 公有访问.不受任何限制.private 私有访问.只限于本类成员访问,子类,实例都不能访问.protected 保护访问.只限于本类和子类访问,实例不能访问.internal 内部访问. ...

  3. IDEA 调试技巧

    转载:http://blog.csdn.net/victor_cindy1/article/details/52336983 1.这里以一个web工程为例,点击图中按钮开始运行web工程. 2.设置断 ...

  4. Oracle 存储容量最大的字段类型CLOB

    1.优点,无限容量 2.数据量大时读取很慢

  5. 【转】为什么 MQTT 是最适合物联网的网络协议

    初识 MQTT 为什么 MQTT 是最适合物联网的网络协议 Michael Yuan2017 年 6 月 14 日发布 WeiboGoogle+用电子邮件发送本页面 0 物联网 (IoT) 设备必须连 ...

  6. 【CF1077F2】Pictures with Kittens 单调队列+dp

    题目大意:给定一个长度为 N 的序列,点有点权,从序列中选出恰好 X 个数,并且保证任意连续的 K 个数中均有一个被选中,求选出的点权最大是多少. 题解:此题可以作为 烽火传递+ 来处理,只不过在烽火 ...

  7. AIO 开始不定时的抛异常: java.io.IOException: 指定的网络名不再可用

    一天里会抛出几个这样的错误,但发现服务还在正常的运行. java.io.IOException: 指定的网络名不再可用. at sun.nio.ch.Iocp.translateErrorToIOEx ...

  8. java Random.nextInt()方法

    转: java Random.nextInt()方法 lic int nextInt(int n) 该方法的作用是生成一个随机的int值,该值介于[0,n)的区间,也就是0到n之间的随机int值,包含 ...

  9. 创建 OpenStack云主机(十一)

    创建过程 创建虚拟网络 创建m1.nano规格的主机(相等于定义虚拟机的硬件配置) 生成一个密钥对(openstack的原理是不使用密码连接,而是使用密钥对进行连接) 增加安全组规则(用iptable ...

  10. python---redis管道(事务)和发布订阅

    管道:将数据操作放在内存中,只有成功后,才会一次性全部放入redis #管道(事务),要是都成功则成功,失败一个全部失败 #原理:将数据操作放在内存中,只有成功后,才会一次性全部放入redis pip ...