BootStrap fileinput.js文件上传组件实例代码
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文件上传组件实例代码的更多相关文章
- jQuery.uploadify文件上传组件实例讲解
1.jquery.uploadify简介 在ASP.NET中上传的控件有很多,比如.NET自带的FileUpload,以及SWFUpload,Uploadify等等,尤其后面两个控件的用户体验比较好, ...
- 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 ...
- Bootstrap fileinput:文件上传插件的基础用法
官网地址:http://plugins.krajee.com/ 官网提供的样例:http://plugins.krajee.com/file-input/demo 基础用法一 导入核心CSS及JS文件 ...
- ASP中文件上传组件ASPUpload介绍和使用方法
[导读]要实现该功能,就要利用一些特制的文件上传组件.文件上传组件网页非常多,这里介绍国际上非常有名的ASPUpload组件 1 下载和安装ASPUpload 要实现该功能,就要利用一些特制的文件上 ...
- Bootstrap fileinput.js,最好用的文件上传组件
本篇介绍如何使用bootstrap fileinput.js(最好用的文件上传组件)来进行图片的展示,上传,包括springMVC后端文件保存. 一.demo 二.插件引入 <link ty ...
- JS文件上传神器bootstrap fileinput详解
Bootstrap FileInput插件功能如此强大,完全没有理由不去使用,但是国内很少能找到本插件完整的使用方法,于是本人去其官网翻译了一下英文说明文档放在这里供英文不好的同学勉强查阅.另外附上一 ...
- js文件上传下载组件
在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 先说下要求: PC端全平台支持,要求支持Windows,Mac,Linux 支持所 ...
- Vue.js 3.0搭配.NET Core写一个牛B的文件上传组件
在开发Web应用程序中,文件上传是经常用到的一个功能. 在Jquery时代,做上传功能,一般找jQuery插件就够了,很少有人去探究上传文件插件到底是怎么做的. 简单列一下我们要做的技术点和功能点 使 ...
- vue大文件上传组件选哪个好?
需求:项目要支持大文件上传功能,经过讨论,初步将文件上传大小控制在500M内,因此自己需要在项目中进行文件上传部分的调整和配置,自己将大小都以501M来进行限制. 第一步: 前端修改 由于项目使用的是 ...
随机推荐
- 一本通1649【例 2】2^k 进制数
1649:[例 2]2^k 进制数 时间限制: 1000 ms 内存限制: 524288 KB [题目描述] 原题来自:NOIP 2006 提高组 设 r 是个 2k 进制数,并满足以 ...
- 轻松学JVM
轻松学JVM(一)——基本原理 前言 JVM一直是java知识里面进阶阶段的重要部分,如果希望在java领域研究的更深入,则JVM则是如论如何也避开不了的话题,本系列试图通过简洁易读的方式,讲解JVM ...
- 在PE32位下安装64位2003、2008系统
步骤 1.进PE(这里是老毛桃为例) 2.将系统(这里windows2008 r2 为例)拷到本地硬盘 3.将ios镜像出来 4.在PE桌面找到 “windows系统安装”,浏览 系统文件 \sou ...
- 【BZOJ3832】[POI2014]Rally(拓扑排序,动态规划)
[BZOJ3832][POI2014]Rally(拓扑排序,动态规划) 题面 BZOJ,权限题 洛谷 题解 这题好强啊,感觉学了好多东西似的. 首先发现了一个图画的很好的博客,戳这里 然后我来补充一下 ...
- Mac中把光盘转存为iso文件
因为Mac是类Unix的,因此,dd命令同样适用于Mac,那么,就很简单了,复习一下dd的用法而已 [xiaosilent@rmbp Volumes]$ drutil status Vendor Pr ...
- github使用记录
背景:一直以来,对github既向往又排斥,是因为感觉高大尚有感觉很陌生.现在跟着辉哥学习项目技术,打算好好的学习下这个工具的使用. 1 基础常识 1.1 基础讲解 star的作用是收藏,目的是方便以 ...
- C++并发编程实战---阅读笔记
1. 当把函数对象传入到线程构造函数中时,需要避免“最令人头痛的语法解析”.如果传递了一个临时变量,而不是一个命名的变量:C++编译器会将其解析为函数声明,而不是类型对象的定义. 例如: class ...
- bzoj千题计划287:bzoj1228: [SDOI2009]E&D
http://www.lydsy.com/JudgeOnline/problem.php?id=1228 打SG函数表,找规律: 若n是奇数m是奇数,则SG(n,m)=0 若n是偶数m是偶数,则SG( ...
- .NET面试题系列(六)多线程
1.多线程的三个特性:原子性.可见性.有序性 原子性:是指一个操作是不可中断的.即使是多个线程一起执行的时候,一个操作一旦开始,就不会被其他线程干扰. 比如,对于一个静态全局变量int i,两个线程同 ...
- webp实践的javascript检测方案
function hasWebp () { // 查看Cookie,如果没有则进行以下逻辑 var img = new Image(); img.onload = handleSupport; img ...