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、使用简单。在JSP文件中仅仅书写三五行java代码就可以搞定文件的上传或下载,方便。
2、能全程控制上传。利用jspSmartUpload组件提供的对象及其操作方法,可以获得全部上传文件的信息(包括文件名,大小,类型,扩展名,文件数据等),方便存取。
3、能对上传的文件在大小、类型等方面做出限制。如此可以滤掉不符合要求的文件。
4、下载灵活。仅写两行代码,就能把Web服务器变成文件服务器。不管文件在Web服务器的目录下或在其它任何目录下,都可以利用jspSmartUpload进行下载。
方法一:(之前在页面直接跳转上传时能够解决问题,异步提交上传图片就不能正常了)
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");
展开内容
9.0/274.9M
能够直接将(批量进行)WAV、MP3、WMA、OGG、APE、MPC、AAC、Flac、Ofr、Spx、Wv文件格式转换为WAV、MP3、WMA、OGG、APE...
9.4/1,111.0M
社交网站登录界面psd模版是网友分享的用来设计社交网站的主页的模版,用户下载后可以自己用ps进行修改,搭建自己的网站!社交网站登录界面psd模版预览PSD网页模...
8.2/1,633.5M
酒店经理人是一款可以让大家体验当经理人的手游,一款非常好玩的模拟酒店经营的小游戏,游戏中我们要成为一个专业的酒店经理人来经营管理好自己的酒店。游戏介绍根据来访客...
9.0/1,637.6M
超萌益智小游戏,我造桥贼6不断的去搭桥,建造自己的小桥,比较考验手速,使用砖块搭造一条通往终点的桥,看看谁最快。我造桥贼6安卓版介绍相信你有自己的方式来完成属于...
8.8/1,138.6M
华为智能体脂秤APP需配合华为智能体脂秤使用,使用时需打开手机蓝牙与秤进行连接。华为智能体脂秤app功能(1)支持测量项目:体重、脂肪率、水分率、基础代谢率、内...
8.1/1,890.6M
御天下送648神装是一款大型仙侠战斗角色扮演手游大作。游戏有着丰富的玩法内容,原汁原味的仙侠江湖。玩家可以选择不同的职业进行战斗冒险,上线还送海量福利哦,给你绝...
8.7/758.5M
看视频领取收益,即刻记录你的每分每秒,即刻短视频app分享了各种各样的精彩视频,也可以通过这款软件记录发布自己的生活哦!即刻短视频app特点●记录美好在即刻智能...
9.6/879.6M
NiceDay软件可以说是工具类的一股清流,很多免费课程,软件也非常治愈,冥想训练类型齐全,使用体验良好,目前还免费,快来下载使用吧~软件介绍NiaceDay-...
9.0/1,113.5M
福州便民自行车app是福州绿色出行的必备工具,为福州地区的市民朋友快速查找附近公共自行车服务点,非常方便,免费使用,快来下载吧!福州便民自行车app介绍福州便民...
8.6/251.1M
主要是街道对属地的小区、商场、景区、仓库、酒店餐饮企业、九小场所、建筑施工、文化人员密集场所、水上安全等排查工作,实现自查隐患、上报隐患、整改隐患、监督指导、跟...
8.7/1,390.5M
妙语连珠赚钱游戏是款文字类的答题游戏,多种线上的福利活动,只要将成语进行正确的填空就能领取相应的奖励,提现也是很快的哈。妙语连珠赚钱游戏游戏介绍妙语连珠,意思是...
9.8/1,536.3M
中银汇点期权手机客户端,是集股票期权行情、交易功能为一体的期权网上交易手机软件。为投资者提供丰富的行情展示、T型报价、合约筛选、合约交易、标的交易等功能。中银汇...
7.9/488.6M
一品官老爷羞羞版是一款古代当官的养成游戏,由王刚代言,升官过程也很有代入感,一天下来像看了一部芝麻官升职记小说一样,体验在古代升官发财的乐趣。一品官老爷游戏攻略...
8.1/1,298.4M
师傅到家是一家互联网科技生活服务商城,提供全国同城生活到家服务,涵盖上门安装/上门维修/上门清洗/上门保洁/搬家拉货等综合性同城到家服务。用户一健下单,即可上门...
9.1/1,436.3M
玩转南步街app是南京路步行街智能AR导航软件,可通过搜索名称,扫描图片详细查找商户,体验AR和商户同框拍照,各种旅游攻略,智能搜索,带你体验。玩转南步街app...
10.0/759.7M
吉安号app精选了国内外多家新闻媒体的优质资源,帮助用户获取更多、更全面的信息,采用先进的人工智能和推荐算法,根据用户的浏览习惯、搜索记录以及兴趣爱好,智能推荐...
10.0/1,995.6M
美丽的农场冒险(FamilyAge)是一款农场模拟经营类型的手游,卡通精致的游戏画风,以整个家庭为单位,种植植物,开采资源,和好朋友一起分享。美丽的农场冒险玩法...
7.5/437.7M
天涯刀剑录是一款仙侠角色rpg手游,炫酷的仙侠场景,诸多畅爽的撩妹现场,升级战斗,拥有神装,酷炫的翅膀,无限的转生,还有海量的任务活动期待你的加入哦!天涯刀剑录...
9.8/54.6M
CHKenTrayClock是一个任务栏时间增强工具,可以在任务栏显示星期几。时间格式显示为月/日|星期小时:分钟时间格式使用说明:/=换行 =转义符 c=CP...
9.3/78.1M
农民工有很多的时候都是不知道如何的去为自己维权的,也不好统计自己的工时,那么现在就可以使用电子版的半天工软件(农民工专业APP),在这款软件里面都是可以轻松的帮...
8.4/1,545.4M
飞机炸翻天游戏送红包了,游戏玩家将操控一架飞机进行作战,各具特色的僚机在战斗时提供帮助,击落敌人的战机,金币满屏飞,游戏中还有超级丰厚的豪礼每天送不停,赶快来下...
8.1/714.1M
PaintShopproX9软件安装失败后卸载不干净影响后续的安装,小编提供的就是PaintShopproX9卸载清除工具,有效的对CorelPaintShop...
9.2/336.2M
常川主题精灵,支持小米/OPPO/vivo等全机型仿IOS主题的软件,并且是免费的,大家只需要点击【我的】,填写答案就可以获得免费会员使用全部的壁纸主题了,操作...
8.7/200.4M
经典的解谜冒险游戏子午线157的最新作,子午线157第二章手游这里有定制的音乐,全新的产品组合,在前一部作品的基础上加入了更有趣味的内容,包含了8种语言可以自由...
8.9/593.1M
ShaderMode显卡检测工具是一款可以检测显卡硬件的小工具,而且非常的方便,又不占内存,是玩机达人必备的小软件,一键检测所有问题,需要的下载吧、软件功能:S...