1.首先我们下载好fileinput插件引入插件
<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设置:
<span style="font-size:14px;"><form enctype="multipart/form-data"> <input id="file-file" class="file" type="file" multiple> </form></span>
3.初始化设置:
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
<strong><form enctype="multipart/form-data"> <input id="file-file" class="file" type="file" multiple> </form></strong>
最后通过后台进行正常的上传就好了。
有些朋友说我没写明白,好吧我把后台代码贴出:
servlet:
@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就能获取一个或者多个上传的文件。上面代码主要核心代码:
<span style="font-size:14px;">String path = request.getSession().getServletContext().getRealPath("/headUpload");
UploadMediaService upload=new UploadMediaService();
String headimage=upload.getMeiaName(path, request);</span>
<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文件上传组件实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# bootstrap
# fileinput
# Bootstrap Fileinput文件上传组件用法详解
# JS文件上传神器bootstrap fileinput详解
# Bootstrap fileinput文件上传预览插件使用详解
# Bootstrap中的fileinput 多图片上传及编辑功能
# Bootstrap的fileinput插件实现多文件上传的方法
# bootstrapfileinput实现文件自动上传
# 基于bootstrap的上传插件fileinput实现ajax异步上传功能(支持多文件上传预览拖拽)
# 详解bootstrap-fileinput文件上传控件的亲身实践
# Bootstrap fileinput 上传新文件移除时触发服务器同步删除的配置
# Bootstrap FileInput实现图片上传功能
# 上传
# 写到
# 文件上传
# 多个
# 上传文件
# 表单
# 小编
# 的是
# 组中
# 放在
# 第一个
# 就能
# 在此
# 将其
# 它是
# 我把
# 我没
# 要想
# 给大家
# 然后再
相关文章:
高端网站建设与定制开发一站式解决方案 中企动力
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
香港服务器部署网站为何提示未备案?
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
如何在Windows服务器上快速搭建网站?
建站之星图片链接生成指南:自助建站与智能设计教程
建站主机选购指南:核心配置与性价比推荐解析
婚礼视频制作网站,学习*后期制作的网站有哪些?
如何在万网主机上快速搭建网站?
建站之星logo尺寸如何设置最合适?
建站OpenVZ教程与优化策略:配置指南与性能提升
,交易猫的商品怎么发布到网站上去?
如何用美橙互联一键搭建多站合一网站?
网站制作公司,橙子建站是合法的吗?
浙江网站制作公司有哪些,浙江栢塑信息技术有限公司定制网站做的怎么样?
高端企业智能建站程序:SEO优化与响应式模板定制开发
交易网站制作流程,我想开通一个网站,注册一个交易网址,需要那些手续?
简单实现Android验证码
三星网站视频制作教程下载,三星w23网页如何全屏?
如何做静态网页,sublimetext3.0制作静态网页?
济南专业网站制作公司,济南信息工程学校怎么样?
已有域名和空间如何搭建网站?
建站之星免费版是否永久可用?
宝塔建站无法访问?如何排查配置与端口问题?
如何用景安虚拟主机手机版绑定域名建站?
东莞市网站制作公司有哪些,东莞找工作用什么网站好?
PHP 500报错的快速解决方法
建站之星如何优化SEO以实现高效排名?
TestNG的testng.xml配置文件怎么写
如何在云主机快速搭建网站站点?
Android使用GridView实现日历的简单功能
如何通过FTP空间快速搭建安全高效网站?
网站制作培训多少钱一个月,网站优化seo培训课程有哪些?
建站VPS能否同时实现高效与安全翻墙?
建站之星安装需要哪些步骤及注意事项?
如何在IIS中新建站点并配置端口与物理路径?
存储型VPS适合搭建中小型网站吗?
娃派WAP自助建站:免费模板+移动优化,快速打造专业网站
已有域名和空间,如何快速搭建网站?
如何配置支付宝与微信支付功能?
5种Android数据存储方式汇总
建站之星代理费用多少?最新价格详情介绍
免费制作海报的网站,哪位做平面的朋友告诉我用什么软件做海报比较好?ps还是cd还是ai这几个软件我都会些我是做网页的?
如何正确选择百度移动适配建站域名?
网站制作与设计教程,如何制作一个企业网站,建设网站的基本步骤有哪些?
javascript基本数据类型及类型检测常用方法小结
制作公司内部网站有哪些,内网如何建网站?
详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
建站主机SSH密钥生成步骤及常见问题解答?
江苏网站制作公司有哪些,江苏书法考级官方网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。