开发者社区> suboysugar> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

BootStrap fileinput.js文件上传组件实例代码

简介: 1.首先我们下载好fileinput插件引入插件 ? 1 2 3 2.html设置: ? 1 2 3    3.
+关注继续查看

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

如何联系我:【万里虎】www.bravetiger.cn 【QQ】3396726884 (咨询问题100元起,帮助解决问题500元起) 【博客】http://www.cnblogs.com/kenshinobiy/

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Bootstrap File Input,最好用的文件上传组件(1)
Bootstrap File Input,最好用的文件上传组件
70 0
Bootstrap File Input,最好用的文件上传组件(2)
Bootstrap File Input,最好用的文件上传组件
44 0
JS组件系列——Bootstrap文件上传组件:bootstrap fileinput
前言:之前的三篇介绍了下bootstrap table的一些常见用法,发现博主对这种扁平化的风格有点着迷了。前两天做一个excel导入的功能,前端使用原始的input type='file'这种标签,效果不忍直视,于是博主下定决心要找一个好看的上传组件换掉它。
1385 0
bootstrap fileinput插件使用感悟
bootstrap fileinput 的填坑感悟              这个插件在demo的网站地址http://plugins.krajee.com/file-preview-icons-demo;不得不承认这个插件很强大,作为一个文件上传插件做到了预览,而且还支持国际化,但是唯一的缺点就是api烂的到极点(应该说没有API)。
2487 0
***Bootstrap FileInput插件的使用经验汇总
插件下载地址: https://github.com/kartik-v/bootstrap-fileinput/ 官方DEMO查看: http://plugins.krajee.com/file-basic-usage-demo   JQ上传插件汇总:http://www.
1890 0
bootstrap-fileinput使用
为什么要使用bootstrap-fileinput,为了图片上传之前的预览图! 1.引入js,css 1 2 3 4 5 6 7 8 9 10 View Code   2.
1307 0
JS组件系列——Bootstrap寒冬暖身篇:弹出框和提示框效果以及代码展示
原文:JS组件系列——Bootstrap寒冬暖身篇:弹出框和提示框效果以及代码展示 前言:对于Web开发人员,弹出框和提示框的使用肯定不会陌生,比如常见的表格新增和编辑功能,一般常见的主要有两种处理方式:行内编辑和弹出框编辑。
1076 0
+关注
suboysugar
目前为自由职业者,从事BA业务分析和互联网产品设计等工作,本人先后在中关村在线、中国工商银行和神州数码工作。拥有互联网,移动互联网,软件公司等开发经历。计算机本科毕业,8年互联网和软件行业经验。
710
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载