我喜欢实用性的东西,不喜欢理论性的东西,尤其对越来越多的新概念不是很感冒。因此,我的文章主要以实用性为目标,让需要的朋友切切实实的能解决问题。
本篇将讲述java常用的上传/下载组件 SmartUpload 的详细java的朋友不会陌生,几乎在所有的B/S架构的项目或者产品中都会用到文件的上传/下载。
关于SmartUpload组件可以在本篇下面的附件中下载。(已经解决上传/下载中文文件名的乱码问题,本人的开发环境均为UTF-8环境)
(1)文件上传
Html代码
<%@ 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;
}
%>
<%@ 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)方法内容:
Java代码
/**
* 上传方法.
* @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 {
//
}
}
/**
* 上传方法.
* @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)文件下载
下载相对更为简单,只要设定下载的文件名(带路径)就可以了.
Html代码
<%@ 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();
%>
<%@ 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)
下载次数: 1521
分享到:
相关推荐
smartUpload组件
采用jspSmartUpload 组件实现的上传下载的完整实例 下载即可运行,但是这个压缩包不支持中文名称的文件下载功能,我上传了一个可以下载中文的不会乱码的jspSmartUpload 组件,网址:...
使用jspSmartUpload组件在jsp中实现上传和下载
smartupload组件,修改版,解决了两种编码UTF-8和中文乱码问题
原始的jspSmartupload组件不支持中文上传,所以我把这个源码进行修改后,现在可以支持中文上传了,你的工程也必须是在统一的utf-8的编码环境下,因为我做的修改,就是将中文用utf-8进行编码。 我只测试了上传功能,...
jspSmartUpload组件是应用JSP进行B/S程序开发过程中经常使用的上传下载组件,它使用简单,方便
本组件可在jsp的开发中用于处理上传文件的处理工作,利用它你可以上传图片,文本文件等。
SmartUpload组件上传下载实例(源代码),jspsmartupload.jar
jspSmartUpload 组件 源代码,并对源代码进行了修改,使其在下载中文文件时,不会出现乱码。使用方法参见http://blog.sina.com.cn/s/blog_4cc16fc50100bwby.html
NULL 博文链接:https://jingrenlang.iteye.com/blog/356351
JspSmartUpload组件+源码+使用攻略,让你轻松掌握JspSmartUpload的上传
jspSmartUpload组件反编译后源码 不错 有需要的可以下载
真正解决jspSmartUpload组件上传下载文件时中文乱码问题。以前在网上也找过!!!下载了些,都没能解决中文乱码问题!自己改了源代码,并做成jar包,直接用就可以。 另,我把File()类 改成了 SmartFile()类。详情请...
SmartUpload组件使用(视频),结合一个小例子教会你怎么使用这个有用的组件。
jspSmartUpload组件的安装与配置
SmartUpload组件用于上传和下载文件 包含源代码,及使用示例
修改后的jspSmartUpload组件,支持中文上传和下载
此为zip压缩版jspSmartUpload组件。jspSmartUpload是一个可免费使用的全功能的文件上传下载组件,适于嵌入执行上传下载操作的JSP文件中。
JSP中 文件的上传与下载 smartupload组件,文件上传到数据库中,SQL 2000数据库,Java Dao模式
应用jspSmartUpload 组件上传下载完整实例 下载即可运行,但是这个压缩包不支持中文名称的文件下载功能,我上传了一个可以下载中文的不会乱码的jspSmartUpload 组件,网址:...