- 浏览: 3010180 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (893)
- android (110)
- iphone (198)
- java (79)
- JavaScript手册-目录 (9)
- JavaScript手册-Array (19)
- JavaScript手册-Boolean (5)
- JavaScript手册-Date (50)
- JavaScript手册-Math (30)
- JavaScript手册-Number (14)
- JavaScript手册-RegExp (7)
- JavaScript手册-String (38)
- JavaScript手册-全局函数 (8)
- JavaScript实用脚本 (7)
- Others (21)
- java-jpcap (7)
- java-thread (1)
- ibm文章 (3)
- classloader (2)
- java-filter (2)
- 运行环境 (33)
- java-正则 (2)
- oracle (1)
- linux-shell (26)
- wap (1)
- sqlite (3)
- wow (1)
- jvm (1)
- git (5)
- unity3d (29)
- iap (2)
- mysql (23)
- nginx (14)
- tomcat (9)
- apache (2)
- php (1)
- ubuntu (40)
- rsa (1)
- golang (21)
- appstore (5)
- sftp (2)
- log4j (2)
- netty (18)
- 测试工具 (6)
- memcache (5)
- 设计模式 (1)
- centos (8)
- google_iab (5)
- iOS专题 (4)
- mac (10)
- 安装配置帮助手册 (2)
- im4java_graphicsmagick (5)
- inotify-tools (1)
- erlang (6)
- 微信支付 (1)
- redis (8)
- RabbitMQ (5)
最新评论
-
heng123:
Netty视频教程https://www.douban.com ...
netty4.0.23 初学的demo -
maotou1988:
使用Netty进行Android与Server端通信实现文字发 ...
netty4.0.23 初学的demo -
码革裹尸:
非常感谢,正好用上
android 呼入电话的监听(来电监听) -
rigou:
提示的/222.177.4.242 无法链接到ip地址,是什 ...
通过 itms:services://? 在线安装ipa ,跨过app-store -
duwanbo:
GridView与数据绑定
★★★ 本篇为原创,需要引用转载的朋友请注明:《 http://stephen830.iteye.com/blog/255010 》 ,谢谢支持!★★★
我喜欢实用性的东西,不喜欢理论性的东西,尤其对越来越多的新概念不是很感冒。因此,我的文章主要以实用性为目标,让需要的朋友切切实实的能解决问题。
本篇将讲述java常用的上传/下载组件 SmartUpload 的详细java的朋友不会陌生,几乎在所有的B/S架构的项目或者产品中都会用到文件的上传/下载。
关于SmartUpload组件可以在本篇下面的附件中下载。(已经解决上传/下载中文文件名的乱码问题,本人的开发环境均为UTF-8环境)
(1)文件上传
WebFileMgr.upload(su,pageContext)方法内容:
上面的JSP,Java代码就可以实现文件的上传.
(2)文件下载
下载相对更为简单,只要设定下载的文件名(带路径)就可以了.
-----------------------
附录:
(1). 解决中文问题的修改说明.参见[zip压缩包中的SmartUpload.java]
(2). smartupload.zip
在客户哪里使用,Cpu占用率比较高,后来换了,建议用apache common upload组件
后台具体用哪个实现可以自行更替,samrtupload是先写内存再存文件,所以占资源多点但效率高;后者是边传边存文件,占资源少但效率会慢一点。
我喜欢实用性的东西,不喜欢理论性的东西,尤其对越来越多的新概念不是很感冒。因此,我的文章主要以实用性为目标,让需要的朋友切切实实的能解决问题。
本篇将讲述java常用的上传/下载组件 SmartUpload 的详细java的朋友不会陌生,几乎在所有的B/S架构的项目或者产品中都会用到文件的上传/下载。
关于SmartUpload组件可以在本篇下面的附件中下载。(已经解决上传/下载中文文件名的乱码问题,本人的开发环境均为UTF-8环境)
(1)文件上传
<%@ page contentType="text/html;charset=UTF-8"%><%@ page import="com.soft4j.httpupload4j.SmartUpload"%><%@ page import="com.soft4j.bo.WebFileMgr"%><% String ret = null; SmartUpload su = null; try{ su = new SmartUpload(); su.initialize(pageContext); su.upload(); ret = WebFileMgr.upload(su,pageContext);//WebFileMgr.java 处理文件上传 if(ret!=null){ out.print("successed"); } }catch(Exception e){ out.print("faild"); }finally{ su = null; } %>
WebFileMgr.upload(su,pageContext)方法内容:
/** * 上传方法. * @param su * @param pageContext * @return * @throws Exception */ public static String upload(SmartUpload su,PageContext pageContext) throws Exception { com.soft4j.httpupload4j.File suFile = null; int fileCount = 0; int maxFileSize = 900;//单个文件最大为900K String AllowedExtensions=",jpg,jpeg,gif,png,";//允许上传的文件类型 try { for (int i=0; i<su.getFiles().getCount();i++) { suFile = su.getFiles().getFile(i); if (suFile.isMissing()) continue; fileSize = suFile.getSize()/1024;//字节转换成KB if(fileSize==0) fileSize=1; if(maxFileSize<fileSize) throw new Exception("单个上传文件的容量不能超过["+maxFileSize+"KB]"); if (suFile.getFileExt() == null || "".equals(suFile.getFileExt())) { fileExt = ",,"; } else { fileExt = "," + suFile.getFileExt().toLowerCase() + ","; } if (!"".equals(AllowedExtensions) && AllowedExtensions.indexOf(fileExt) == -1) { throw new Exception("您上传的文件[" + suFile.getFileName() + "]的类型为系统禁止上传的文件类型,不能上传!"); } fileCount++; } if (fileCount==0) throw new Exception("请选择上传的文件"); StringBuffer fullFileName = null;//保存到服务器上的文件名(带路径) for (int i=0; i<su.getFiles().getCount();i++) { suFile = su.getFiles().getFile(i); if (suFile.isMissing()) continue; fullFileName = new StringBuffer("文件的路径");//填写 文件的路径 fullFileName.append("文件名");//填写 文件名 suFile.saveAs(fullFileName.toString(),SmartUpload.SAVE_PHYSICAL); } return "successed"; } finally { // } }
上面的JSP,Java代码就可以实现文件的上传.
(2)文件下载
下载相对更为简单,只要设定下载的文件名(带路径)就可以了.
<%@ page contentType="text/html;charset=UTF-8"%> <%@ page import="com.soft4j.httpupload4j.SmartUpload"%> <% //新建一个SmartUpload对象 SmartUpload su = new SmartUpload(); //初始化 su.initialize(pageContext); //设定要下载的文件名(带路径) String fileName="下载的文件名";//文件名(带路径) try{ su.downloadFile(fileName);//下载文件 }catch(Exception e){ e.printStackTrace(); out.println(e.toString()); } response.getOutputStream().close(); %>
-----------------------
附录:
(1). 解决中文问题的修改说明.参见[zip压缩包中的SmartUpload.java]
(2). smartupload.zip
- smartupload.zip (9 KB)
- 下载次数: 3709
评论
6 楼
huangleizzz
2012-02-16
5 楼
duronshi
2009-01-09
这里只判断了文件的后缀,最好是通过判断文件头来校验上传文件的合法性.
4 楼
stephen830
2009-01-08
javacoo 写道
怎么得到图片的宽和高呢?
/** * 生成缩略图 * @param srcImageFile 源图片文件的File实例. * @param dstImageFileName 待生成的缩略图片文件名 * @throws Exception */ public static void makeSmallImage(File srcImageFile,String dstImageFileName) throws Exception { FileOutputStream fileOutputStream = null; JPEGImageEncoder encoder = null; BufferedImage tagImage = null; Image srcImage = null; try{ srcImage = ImageIO.read(srcImageFile); int srcWidth = srcImage.getWidth(null);//原图片宽度 int srcHeight = srcImage.getHeight(null);//原图片高度 int dstMaxSize = 120;//目标缩略图的最大宽度/高度,宽度与高度将按比例缩写 int dstWidth = srcWidth;//缩略图宽度 int dstHeight = srcHeight;//缩略图高度 float scale = 0; //计算缩略图的宽和高 if(srcWidth>dstMaxSize){ dstWidth = dstMaxSize; scale = (float)srcWidth/(float)dstMaxSize; dstHeight = Math.round((float)srcHeight/scale); } srcHeight = dstHeight; if(srcHeight>dstMaxSize){ dstHeight = dstMaxSize; scale = (float)srcHeight/(float)dstMaxSize; dstWidth = Math.round((float)dstWidth/scale); } //生成缩略图 tagImage = new BufferedImage(dstWidth,dstHeight,BufferedImage.TYPE_INT_RGB); tagImage.getGraphics().drawImage(srcImage,0,0,dstWidth,dstHeight,null); fileOutputStream = new FileOutputStream(dstImageFileName); encoder = JPEGCodec.createJPEGEncoder(fileOutputStream); encoder.encode(tagImage); fileOutputStream.close(); fileOutputStream = null; }finally{ if(fileOutputStream!=null){ try{ fileOutputStream.close(); }catch(Exception e){ } fileOutputStream = null; } encoder = null; tagImage = null; srcImage = null; System.gc(); } }
3 楼
javacoo
2009-01-08
怎么得到图片的宽和高呢?
2 楼
stephen830
2008-10-26
Nick_HF 写道
在客户哪里使用,Cpu占用率比较高,后来换了,建议用apache common upload组件
后台具体用哪个实现可以自行更替,samrtupload是先写内存再存文件,所以占资源多点但效率高;后者是边传边存文件,占资源少但效率会慢一点。
1 楼
Nick_HF
2008-10-26
在客户哪里使用,Cpu占用率比较高,后来换了,建议用apache common upload组件
发表评论
-
Java的内存机制
2016-08-22 13:27 4821.Java的内存机制 Java 把内存划分成两 ... -
监听域对象中属性的变更的监听器
2016-07-18 19:06 1753监听域对象中属性的变更的监听器 域对象中属性 ... -
HttpSessionActivationListener
2016-07-18 18:46 649HttpSessionActivationListe ... -
Web容器监听器(实现在线统计人数,踢人)
2016-07-18 10:48 950Web容器监听器(实现在线统计人数,踢人) Servl ... -
HttpSessionBindingListener接口
2016-07-18 10:29 641HttpSessionBindingListene ... -
ServletRequestAttributeListener接口
2016-07-17 22:24 8332. HttpSessionAttribut ... -
Servlet3中异步Servlet特性介绍
2016-07-17 15:50 846Servlet3中异步Servlet特性介绍 ... -
HttpSessionAttributeListener
2016-07-15 17:49 696HttpSessionAttributeListener ... -
使用ServletContextAttributeListener
2016-07-15 16:47 847使用ServletContextAttr ... -
ServletRequestListener
2016-07-15 16:25 600ServletRequestListener接口 ... -
HttpSessionListener
2016-07-15 14:56 634HttpSessionListener接口 M ... -
ServletContextListener 接口
2016-07-15 12:16 627在 Servlet API 中有一个 Se ... -
ReflectASM,高性能的反射
2016-04-29 17:19 961http://www.oschina.net/p/r ... -
Java多线程与静态方法
2016-04-26 11:52 850Java多线程与静态方法 在多线程中使用静态方法会发生什么 ... -
log4j日志输出格式
2016-04-12 20:58 1117log4j日志输出格式 在LOG4J的配置文件中,l ... -
Servlet3.0
2016-04-12 16:58 698一、Servlet3.0介绍 Servlet3 ... -
log4j2 使用详解
2016-04-12 14:14 1466log4j2 使用详解 转载自 Blog of ... -
Eclipse jar打包和命令行运行
2016-04-08 10:44 2963?Eclipse jar打包和命令行运行 第1步: ... -
GRAPHICSMAGICK+IM4JAVA错误Cannot run program "gm": error=2
2015-05-19 15:27 4111在通过 GRAPHICSMAGICK+IM4JAVA ... -
GraphicsMagick安装、实时生成缩略图
2015-05-19 13:39 2421GraphicsMagick安装、实时生成缩略图 ...
相关推荐
`jspSmartUpload` 是一个在JSP(Java Server Pages)环境下广泛使用的上传下载组件,它基于Java技术,提供了强大的文件上传和下载功能。本文将深入探讨`jspSmartUpload`组件的工作原理、主要特性以及如何在实际项目...
上传文件组件SmartUpload
上传文件组件SmartUpload
可完成中文文件名的上传下载组件jspsmartupload
采用jspSmartUpload 组件实现的上传下载的完整实例 下载即可运行,但是这个压缩包不支持中文名称的文件下载功能,我上传了一个可以下载中文的不会乱码的jspSmartUpload 组件,网址:...
"SmartUpload上传下载组件"是一款在Web开发中广泛使用的工具,尤其在处理用户需要上传或下载大文件的场景下表现出色。它是一个功能强大的Java Servlet和JavaScript库,旨在简化文件上传和下载的过程,同时提供了丰富...
使用jspSmartUpload组件在jsp中实现上传和下载 在现代Web开发中,文件上传与下载是常见的需求之一,尤其在企业级应用、个人博客、图片分享等场景中尤为重要。jspSmartUpload作为一款专为JSP设计的文件上传组件,以...
`jspSmartUpload`是一款在Java Web开发中广泛使用的上传和下载组件,它提供了方便、高效且灵活的文件处理功能。这个组件最初由JSPSmart公司开发,旨在解决JSP页面中文件上传的问题,使得开发者能够轻松地在网页上...
通过SmartUpload组件,开发者可以轻松地集成文件上传和下载功能,极大地提高了开发效率,同时也提升了用户的使用体验。在实际项目中,根据需求进行适当定制,可以构建出稳定且高效的文件管理系统。
`jspSmartUpload` 是一个经典的Java Web上传下载组件,主要应用于JSP(JavaServer Pages)页面,便于开发者实现在网页上进行文件的上传和下载功能。这个组件简化了处理用户通过Web表单上传文件的复杂过程,提供了一...
下面将详细介绍`jspSmartUpload`的使用方法及其核心知识点。 ### 1. jspSmartUpload组件介绍 `jspSmartUpload`是由Kreotek公司开发的,它简化了文件上传和下载的复杂过程。这个组件提供了丰富的API,使得开发者...
在IT行业中,文件上传功能是许多Web应用必不...通过掌握它的使用方法和特性,你可以快速实现各种复杂的文件上传功能,提高开发效率,提升用户体验。无论你是新手还是经验丰富的开发者,SmartUpload都是值得信赖的伙伴。
在Java Web开发中,文件上传和下载是常见的功能需求,特别是在构建...通过了解`SmartUpload`类的关键方法和使用示例,开发者可以更好地在项目中集成这个组件,提升用户体验,同时确保上传和下载过程的安全性和稳定性。
jspSmartUpload上传下载组件(*.jar)
精心准备了一个极品的jsp上传组件,内有上传文件需要的jar包及详细说明,保证一看就会;还有更好的通用js页面上传代码(含使用说明),负责多文件上传的动态显示(记住这是通用的啊),使用更是方便。有了这两个5分钟...
**正文** `SmartUpload`是Java Web开发中一个流行的文件上传组件,专为JSP(Java Server Pages)设计。...通过理解其核心概念和使用方法,开发者可以快速地在自己的JSP项目中实现高效、稳定的文件上传功能。
在这个场景中,我们关注的是JSP中的文件上传和下载功能,以及如何利用SmartUpload组件来实现这一目标。SmartUpload是一个强大的文件上传组件,它简化了在JSP中处理文件上传的过程。 首先,我们要理解文件上传的基本...