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");
1、使用简单。在JSP文件中仅仅书写三五行java代码就可以搞定文件的上传或下载,方便。
2、能全程控制上传。利用jspSmartUpload组件提供的对象及其操作方法,可以获得全部上传文件的信息(包括文件名,大小,类型,扩展名,文件数据等),方便存取。
3、能对上传的文件在大小、类型等方面做出限制。如此可以滤掉不符合要求的文件。
4、下载灵活。仅写两行代码,就能把Web服务器变成文件服务器。不管文件在Web服务器的目录下或在其它任何目录下,都可以利用jspSmartUpload进行下载。
展开内容
8.7/1,242.9M
期货交易东证期货app是一款为广大投资者量身定制的互联网期货交易平台,由东证期货出品。投资者可以通过APP交易铜、黄金、白银、原油等大宗商品,是安全可靠的期货交...
9.0/925.5M
如来神送(生鲜配送app),一款手机端的购物服务软件,本款软件一站式的配送服务让你在线轻松一站式的购齐生活必备品,快来享受足不出户的购物体验吧!如来神送(生鲜配...
8.8/1,268.4M
大领主传说是一款异世界模拟经营手游,玩家可以自由展开冒险,在世界的不同地方击败敌人获取需要的资源,这里的玩法很有创意,而且剧情也是有内容,玩法不肝不氪,游戏福利...
9.6/537.7M
西窗烛ios版是一款精选诗词古文的应用。在这款软件上你可以搜索到大部分的诗词古文,再也不用怕找不到想找的古诗文了~有需要的朋友下载吧!应用简介中国诗词大会必备A...
9.0/1,783.0M
天下霸主是一款策略塔防游戏,在游戏中,玩家将会在魔幻的世界里展开塔防的较量,不断地召集英雄升级他们的属性,组合成强力的阵容制霸游戏!天下霸主简介魔法门再度开启,...
8.1/1,645.2M
黑白照片修复大师OTO是一款便捷的手机线上老照片修复上色软件,用户下载这款软件可以将家里的老照片进行上传,过不了多久就会得到一张修复完好的照片,清晰度得到增加,...
8.0/705.0M
#BUD#是国内最大的元宇宙UGC社交平台,注册用户近千万,最高苹果社交总榜前3,拥有数百万原创UGC作品和高度活跃的创作者生态。国服官方版本已经下架了,因为游...
8.2/176.3M
BulletBattle游戏,一款多人在线射击游戏,游戏中有多个章节的剧情任务,需要玩家去完成,更有稀有的绝版武器可供玩家体验。BulletBattle游戏简介...
8.3/1,003.7M
开心城堡围棋是一款趣味十足的益智棋盘游戏,游戏设计界面简洁大方美观,玩法通俗易懂,游戏可以双人对战也可以人机对战,电脑会学习你的招法越来越强哦!开心城堡围棋规则...
8.6/1,275.0M
Fennec浏览器解锁高级版是专门设计用于移动设备的Web浏览器,具有强大的功能和良好的用户体验,适合那些需要在移动设备上进行网页浏览的用户。Fennec浏览器...
9.4/1,881.0M
唯美优品app是一款手机购物软件,涵盖商品类型多样,你想找的在这里都可以找到,足不出户尽享购物愉悦!唯美优品(线上购物)介绍唯美优品app非同一般一般的免税店购...
8.7/1,686.6M
天盾加密软件可以帮助你对文件进行快速加密,界面美观,操作非常人性化,加密速度快,具有三种加密方式,隐蔽性非常高,绿色安全,使用方便快捷,需要的话快来试试吧!基本...
7.6/1,753.9M
奇异世界:新鲜可口一项修改器让你可以在游戏里为所欲为不用再为血量担心让你拥有无限的血量,还在等什么赶紧来下载吧。奇异世界:新鲜可口一项修改器功能快捷键F1无限血...
7.9/663.1M
红创助手专为红人提供一站式运营服务及电商赋能工具。包含优质精选货源,销量分析,清晰的账单结算,运营教程等服务红创电商助手app特点1、专属推荐:根据红人的人设或...
8.5/1,602.8M
2017九月你好苹果手机壁纸是东坡为大家带来的,九月壁纸集合,大家可以用户发朋友圈,做手机壁纸,快来下载试试吧!2017年九月你好安卓壁纸预览:九月经典语录1、...
8.8/916.8M
看到一个由李诞代言的手游正式公测了,这款游戏是以轩辕剑为主题打造,名字叫轩辕剑剑之源,它是由中手游官方出品,游戏有着超长的放置玩法,可以想躺就躺,一键就能爆爽的...
7.6/285.4M
猪迪克识字iPhone版是一款根据经典幼儿动漫《我的朋友猪迪克》为题材的幼儿识字软件,将学习以动画的形式呈现给孩子,让孩子在快乐中成长!猪迪克识字iPhone版...
9.7/738.5M
福农市场app是一款专为农产品打造的线上购物平台,能为用户提供多种农副产品,用户通过这款软件能在线发布订单,直接网上购买农产品,小编为你带来福农市场app安卓正...
8.8/319.9M
其实这就是这几天很火的一款小米徕卡相机提取包,本来是测试的包,但是实际上是所有的安卓手机都可以用的,全新的小米12S系列手机,还拥有专属的徕卡水印,配合独特的徕...
7.9/574.6M
快乐爱消除最近人气真的高,实际上这是一款俄罗斯方块类的游戏,没有什么花里胡哨的其他玩法,有的就是无穷无尽的快乐消除。丰富多样的关卡,色彩鲜明的道具,跌宕起伏的关...
9.4/1,560.4M
VoiceAI体验中心app是一款可以用来体验智能语音技术的手机软件,具有非常强大的AI语音识别功能,帮助用户实现多种语音识别功能!VoiceAI体验中心app...
8.9/1,357.9M
梦幻之城九游版是一款角色扮演类游戏,游戏含有多种玩法,跨服竞技、副本挑战、全屏秒怪,惊险刺激,游戏设有多元活动社交系统,交友游戏两不误,喜欢这类游戏的朋友们可点...
9.9/1,214.1M
武汉TAXIapp是武汉市出租汽车暨汽车租赁协会着重点打造的本地出行app,用户下载这款软件能够在上面直接进行叫车,只需一键呼叫出租车,附近的出租车接单后马上就...
8.4/973.5M
大酒改位置软件是适用于王者荣耀的一款全新的辅助修改定位的app,这款app的主要功能就是可以帮助大家进行虚拟定位,可以任意修改自己的战区定位,让大家排名更加的有...
7.9/1,871.7M
与神共武是一款十分火爆的修仙魔兽防守地图,在这里小编为大家带来的是与神共武2.4正式版,该版本主要修改了部分英雄的bug和技能的修改等内容,欢迎喜欢的朋友前来东...