1、使用简单。在JSP文件中仅仅书写三五行java代码就可以搞定文件的上传或下载,方便。让球
2、能全程控制上传。利用jspSmartUpload组件提供的对象及其操作方法,可以获得全部上传文件的信息(包括文件名,大小,类型,扩展名,文件数据等),方便存取。
3、能对上传的文件在大小、类型等方面做出限制。如此可以滤掉不符合要求的文件。
4、下载灵活。仅写两行代码,就能把Web服务器变成文件服务器。不管文件在Web服务器的目录下或在其它任何目录下,都可以利用jspSmartUpload进行下载。
jspsmartupload.jar是一款针对jsp开发的上传下载组件,现在已经完美支持中文名字文件的上传下载工作。该插件使用很简单,能全程控制上传,还能对文件大小、类型等等方面做出限制,轻松过滤掉不符合要求的文件。需要的朋友下载试试吧!
smartupload使用方法

如果想让Tomcat服务器的所有Web应用程序都能用它,必须做如下工作:
1.进入命令行状态,将目录切换到Tomcat的webapps/jspsmartupload/WEB-INF目录下。
2.运行JAR打包命令:jarcvfjspSmartUpload.jarcom,也可以打开资源管理器,切换到当前目录,用WinZip将com目录下的所有文件压缩成jspSmartUpload.zip,然后将jspSmartUpload.zip换名为jspSmartUpload.jar文件即可。
3.将jspSmartUpload.jar拷贝到Tomcat的shared/lib目录下。
上传相关代码
uploadFile.jsp
<%@pagecontentType="text/html;charset=GB2312"%>
<formmethod="post"action="doUpload.jsp"enctype="multipart/form-data">
<tablewidth="315"border="0">
<tr>
<tdwidth="309"align="center"><inputtype="file"name="file1"size="30"></td>
</tr>
<tr>
<tdalign="center"><inputtype="file"name="file2"size="30"></td>
<tr>
<tdalign="center"><inputtype="submit"name="Submit"value="上传"></td>
</tr>
</table>
</form>
doUpload.jsp
<%@pagecontentType="text/html;charset=gbk"
import="java.util.*,com.jspsmart.upload.*"%>
<html>
<head>
<title>文件上传处理页面</title>
<metahttp-equiv="Content-Type"content="text/html;charset=gbk">
</head>
<body>
<%
//新建一个SmartUpload对象
SmartUploadsu=newSmartUpload();
//上传初始化
su.initialize(pageContext);
//设定上传限制
//1.限制每个上传文件的最大长度。
//su.setMaxFileSize(10000);
//2.限制总上传数据的长度。
//su.setTotalMaxFileSize(20000);
//3.设定允许上传的文件(通过扩展名限制),仅允许doc,txt文件。
//su.setAllowedFilesList("doc,txt");
//4.设定禁止上传的文件(通过扩展名限制),禁止上传带有exe,bat,jsp,htm,html扩展名的文件和没有
//扩展名的文件。
//su.setDeniedFilesList("exe,bat,jsp,htm,html,,");
//上传文件
su.upload();
//将上传文件全部保存到指定目录,需要先在在Web应用的根目录下,创建一个upload目录
intcount=su.save("/upload");
out.println(count+"个文件上传成功!<br>");
//利用Request对象获取参数之值
out.println("TEST="+su.getRequest().getParameter("TEST")
+"<BR><BR>");
//逐一提取上传文件信息,同时可保存文件。
for(inti=0;i<su.getFiles().getCount();i++)
{
com.jspsmart.upload.Filefile=su.getFiles().getFile(i);
//若文件不存在则继续
if(file.isMissing())continue;
//显示当前文件信息
out.println("<TABLEBORDER=1>");
out.println("<TR><TD>表单项名(FieldName)</TD><TD>"
+file.getFieldName()+"</TD></TR>");
out.println("<TR><TD>文件长度(Size)</TD><TD>"+
file.getSize()+"</TD></TR>");
out.println("<TR><TD>文件名(FileName)</TD><TD>"
+file.getFileName()+"</TD></TR>");
out.println("<TR><TD>文件扩展名(FileExt)</TD><TD>"
+file.getFileExt()+"</TD></TR>");
out.println("<TR><TD>文件全名(FilePathName)</TD><TD>"
+file.getFilePathName()+"</TD></TR>");
out.println("</TABLE><BR>");
//将文件另存
//file.saveAs("/upload/"+myFile.getFileName());
//另存到以WEB应用程序的根目录为文件根目录的目录下
//file.saveAs("/upload/"+myFile.getFileName(),su.SAVE_VIRTUAL);
//另存到操作系统的根目录为文件根目录的目录下
//file.saveAs("c:\temp\"+myFile.getFileName(),su.SAVE_PHYSICAL);
}
%>
</body>
</html>
下载相关代码
download.jsp
<%@pagecontentType="text/html;charset=gb2312"%>
<html>
<head>
<title>下载</title>
</head>
<body>
<ahref="do_download.jsp">点击下载</a>
</body>
</html>
do_download.jsp
<%@pagecontentType="text/html;charset=gb2312"
import="com.jspsmart.upload.*"%>
<%
//新建一个SmartUpload对象
SmartUploadsu=newSmartUpload();
//初始化
su.initialize(pageContext);
//设定contentDisposition为null以禁止浏览器自动打开文件,
//保证点击链接后是下载文件。若不设定,则下载的文件扩展名为doc时,浏览器将自动用word打开它。
//扩展名为pdf时,浏览器将用acrobat打开。
su.setContentDisposition(null);
//下载文件,保证Web应用下的upload目录下有测试文档.doc文件。
su.downloadFile("/upload/测试文档.doc");
%>
注意:jspSmartUpload编写下载文件代码时,若下载的文件名中有汉字,则浏览器在提示另存的文件名时,显示的是一堆乱码。为了给jspSmartUpload组件增加下载中文文件的支持,对返回给浏览器的另存文件名进行UTF-8编码后,浏览器便能正确显示中文名字了。在SmartUpload.java文件中,增加的方法如下:
publicstaticStringtoUtfString(Strings){
StringBuffersb=newStringBuffer();
for(inti=0;i<s.length();i++){
charc=s.charAt(i);
if(c>=0&&c<=255){
sb.append(c);
}else
{
byte[]b;
try{
b=Character.toString(c).getBytes("utf-8");
}catch(Exceptionex){
System.out.println(ex);
b=newbyte[0];
}
for(intj=0;j<b.length;j++){
intk=b[j];
if(k<0)k+=256;
sb.append("%"+Integer.toHexString(k).toUpperCase());
}
}
}
returnsb.toString();
}
将文件名转换为UTF-8形式的编码形式。UTF-8编码对英文未作任何处理,对中文则需要转换为%XX的形式。toUtf8String方法中,直接利用Java语言提供的编码转换方法获得汉字字符的UTF-8编码,之后将其转换为%XX的形式。
修改getFileName()方法如下,使其调用toUftString()方法
privateStringgetFileName(Strings){
inti=0;
Strings1=toUtfString(s);
i=s1.lastIndexOf('/');
if(i!=-1){
returns1.substring(i+1,s1.length());
}
i=s1.lastIndexOf('\');
if(i!=-1){
returns1.substring(i+1,s1.length());
}else{
returns1;
}
}
方法一:(之前在页面直接跳转上传时能够解决问题,异步提交上传图片就不能正常了)
1.解决中文乱码:
【1】:首先上传页面和接收页面都必须制定编码格式为GBK;
<%@pagelanguage="java"import="java.util.*"pageEncoding="GBK"%>
【2】:在上传页面要response.setCharacterEncoding("GBK");
【3】:在接收页面要request.setCharacterEncoding("GBK");
【4】:注意上传时表单要指定编码为:enctype="multipart/form-data"
【5】:注意上传时表单要指定方法为:method="post"
方法二:(异步提交表单能正常解决)
【1】上传页面:(对参数做一次encodeURI)js
//对表单中的中文区域值得获取并进行转码
varname= parent.window.$("#tabs_name").val();
vardirection= parent.window.$("#tabs_direction").val();
parent.window.$("#tabs_name").val(encodeURI(name));
parent.window.$("#tabs_direction").val(encodeURI(direction));
parent.window.$('#subject_modify').submit(); //提交表单
【2】接收参数页面(对参数做一次URLDecoder)
Stringname=smart.getRequest().getParameter("name");
name=URLDecoder.decode(name,"utf-8");
展开内容
8.7/399.4M
掌上红木家具app是一款家具购买软件,解决了你购买家具的烦恼,还可以随时的查询行业的最新动态,让你及时能够购买到最实惠的家具。软件介绍掌上红木家具是一款多功能的...
8.2/1,793.0M
霸略征战手游是三国类型的一款策略战争类型游戏,不断地的建造城池,开局选择自己的阵营,不断地的进攻或者抵抗进攻,各种策略布阵玩法,非常刺激好玩!霸略征战手游介绍霸...
8.3/757.9M
会说话的艾玛猫-宠物游戏,类似于《会说话的汤姆猫》一样的小游戏,这里的主人公是一只小猫,玩家可以给这只小猫洗澡、喂饭、哄她睡觉等等,尤其是小孩子玩,可以培养孩子...
9.3/1,388.3M
WildTamer野生驯兽师内购破解版,是内置菜单的版本,大家可以看角标,有个内置插件的提示,没错了就是无限血随心畅玩。手绘风的野蛮时代场景,超多有趣地图和道具...
9.1/1,155.8M
天翼3G俱乐部专业的打造最强大的手机应用下载以及管理,当然现在下载天翼3G俱乐部还是有更多的惊喜礼包等着你来领取哦!天翼3G俱乐部介绍天翼3G俱乐部是一款基于智...
9.5/1,254.8M
长安停车是解决我们停车需求的手机app,相信很多车主都会遇到停车难的问题,有了长安停车就不会被困扰了,扫码支付缴费离场,无需下车等待,非常的轻松。长安停车好在哪...
7.9/1,642.3M
英练帮app是一款英语学习软件,这里为学生提供大量英语学习课程,在线直播互动教学,在线问题解答,还可英语口语互动交流,提升口语能力看的见,帮你练出一口纯正地道的...
8.2/962.6M
999刀传奇是一款超级好玩的战斗冒险手游大作。游戏有着新颖的玩法内容,在原有传奇的基础上加入了好玩的元素。随时随地都可以切入战斗进行pk。血战沙城,再战沙巴克之...
8.1/614.8M
朗科备份精灵(BackupManager)是一款专业的文件备份及管理软件,它的主要功能是将您电脑主机中的文件备份至随附的外接式硬盘。相较于传统的档案管理员或其它...
查看
9.0/1,648.7M
vivo游戏中心是vivo手机自带的一个软件,当然如果朋友删除了,还是可以通过本页面下载回来的。其他系列手机也可以安装vivo游戏中心,找到想玩的各类游戏哦。官...
查看
8.8/189.5M
出战追击送海量3特权是一款三国题材的卡牌战斗策略养成手游。游戏有着丰富的玩法内容,汇聚三国题材中经典武将。玩家将化身主公开启自己的冒险之旅。多种游戏模式,你可以...
8.6/97.1M
南丰网是一款专门为南丰人打造的综合生活服务平台。这里有各种的生活消费资讯。一部手机在手,大事小事突发事全知道!用户还可以在这里分享自己的生活,组织一些活动,感兴...
8.2/217.5M
巫师3狂猎石之心初始存档是一款非常好用的存档软件,可以让你快速的获得石之心的所有存档,而且还有很多让你开心的玩法和特色,需要的下载吧。使用方法1、解压缩2、复制...
8.4/1,828.8M
晚安泰迪熊是一款非常受欢迎的恐怖解谜类的单机游戏。在这款游戏中,你将会见到夜晚的另一面,本来在怀里的泰迪熊,不见了。游戏中有不同的结局,不同的分支也会导致不同的...
8.7/563.9M
声阔耳机Soundcore应用为每种受支持的Soundcore设备提供独特功能,并且允许用户定制和优化聆听体验,在声阔app上面就可以调节降噪模式,连接十分稳定...
10.0/336.5M
许多朋友都喜欢用ppt来做工作汇报,今天为您分享一个小清新风格简约通用PPT模板,画风简洁,实用性强,可以用于各种场合!小清新风格简约通用PPT模板预览ppt讲...
7.7/1,384.5M
疯狂泡泡是一款很好玩的表情包元素休闲手游。游戏以多米诺骨牌为原型,多种游戏模式,玩家将操作自己的小人进行攻击。激活场地中的所有元素,海量的游戏关卡等你来战,让你...
8.3/770.2M
这是一个潜行的挂机休闲小游戏,你需要做就是躲避起来,然后偷袭你的敌人进行闯关,非常有趣味性的玩法,挑战性也比较强,简单好玩。橡皮人潜行大师游戏好玩吗好玩的游戏,...
8.8/1,449.6M
林中之夜是一款以恐怖为主题的解谜游戏,这款游戏现在已经推出汉化补丁,如果你看不懂这款游戏的语言的话就可以使用这个汉化补丁!喜欢这款游戏的可以试玩哦!林中之夜汉化...
7.6/1,172.2M
幼教汇是一款幼儿教育服务软件,在这里汇集了幼儿早教的知识内容,包含了动画故事、英语学习,还有各方面的德智体美劳可以学习,可以选择孩子所在学年,支持离线下载学习,...
10.0/1,854.2M
兽人时代手游是一款好玩的策略防塔类游戏,玩家可以组建兽人军队,化身为指挥官,你需要帮你的队伍提高战斗力,参与战斗,还有挑战关卡获得不同的奖励,增加你的势力,逐渐...
7.9/311.6M
随时的关注以及了解教育最新的动态,同时也是可以适合一些学校以及班级使用,可以沟通家长以及学校的距离,不用担心学生出现的各种问题不能沟通!平行线教育介绍是一款和教...
9.6/1,327.8M
e教时代教师版是一款为老师打造的教学软件,能在线视频教学,布置作业和批改作业,丰富的统计功能,是老师授课的好帮手。功能介绍批改作业可观题自动批改,帮你减轻工作量...