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");
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;
}
}
jspsmartupload.jar是一款针对jsp开发的上传下载组件,现在已经完美支持中文名字文件的上传下载工作。该插件使用很简单,能全程控制上传,还能对文件大小、类型等等方面做出限制,轻松过滤掉不符合要求的文件。需要的朋友下载试试吧!
展开内容
9.1/951.4M
HIC编辑器是专门针对C语言初学者打造的一款代码编辑软件,操作方便,可以进行一些简单的编译,有需要的朋友可以试一试。特色介绍比较人性化的设计比如更适合过渡的(编...
7.7/48.8M
蜂鸟众包最新版,配送兼职平台。蜂鸟即配传递品质生活,百万骑士,优质服务,为您带来极致送达体验。作为兼职和全职都是可以的,只要你满足基本条件就可以选择成为一名骑士...
9.5/313.6M
万能连点器APP是一款比较好用的连点工具类软件,而且也是比较实用的,在一些日常的办公场景中,如数据录入、表格填写、文件整理等,可能会涉及到大量的重复性点击操作。...
8.4/1,057.4M
QQ高能舞蹈教室AI版是腾讯qq新出的一个功能,你可经通过此功能练就一身灵魂舞者的气息,玩法是相当魔性,而且轻量级的设计,不用下载,只直接更新到最新版本即可。你...
8.3/1,141.1M
陕西学安陕西校园安全app针对于陕西各大高效打造的校园安全巡查服务平台,一旦发现校园安全问题就能直接在软件中进行上报并及时的处理,及时查看隐患问题,打造安全的校...
9.5/892.7M
摩单app是一个高质量的实名认证单身交友平台,身份,学历双重认证,更安全可靠,支持线上线下沟通交流,遇见属于你的心动,这里附上最新官方客户端下载。使用说明1、下...
9.6/1,060.5M
易邮件地址验证大师是一个批量验证邮箱地址的软件,可以正确验证出各种各样的邮箱地址(如163邮箱、126邮箱、yahoo邮箱、sohu邮箱、sina邮箱等等)。验...
9.3/557.5M
上门按摩pro深圳三十分科技有限公司旗下直营产品,为客户提供快捷,高质量的按摩服务。已覆盖中国70余个主要城市,spa,推拿等服务品类丰富,客服实时为您服务。3...
9.3/1,611.3M
悠然农场是一款经营种植手游,是真的能赚钱的小游戏,玩家在游戏中种植各种作物,依靠这些农作物就能赚到很多现金红包,还有每日的活动,也能领到不少,感兴趣的小伙伴快来...
8.9/953.7M
高品质、一站式智能家居服务平台,居然管家(居然之家网上家具城app),从智能家居电器产品出发,为用户提供一站式的保洁、翻新服务。居然管家是什么公司居然管家是以居...
9.6/1,545.2M
女足经理人手游下载分享,关注女足,从游戏做起!这是一款成为女足经理的模拟经营游戏,在这里组建属于你们的女子足球队伍,参加各类大赛,培养超级明星获得冠军。喜欢足球...
8.2/863.2M
无忧考吧一级计算机基础及MSOffice应用破解免费版是一款可以帮助靠计算机基础及MSOffice应用的朋友轻松学习的软件,快速提高成绩,欢迎来下载使用!无忧考...
9.4/703.6M
卫星3D街景地图是一款非常实用的手机地图软件,此软件地址信息非常的全面,使用该软件可以查询周边的公交站、地铁站、加油站、景点等,是出行的好帮手。卫星3D街景地图...
9.5/91.0M
HR900通用发卡器接口程序是用来管理接口的一些应用软件,配合插入软件可以让程序更好方便使用,管理一些功能,调整一些用法等等!发卡器是什么发卡器是对卡进行读写操...
9.3/1,184.5M
CSDN上有很多用户上传的好资料,不过好多都需要下载积分,很多人都苦于没有积分,每次下载的时候都很麻烦!这个软件可以帮你解决没有下载积分的问题,免积分下载CSD...
7.5/1,643.2M
放置加上一些骑士类型的游戏,一个全新的强化类型的游戏,可以直接的各国之间的争霸,同时也是像素类型的玩法,值得进去一试的游戏,目前已经汉化!优柔寡断的失策勇者游戏...
8.9/1,080.5M
基本上从CS4、CS5开始,后面的版本都是用的破解补丁了,用注册机激活太过麻烦。小编这里免费分享AdobeIllustratorCC2015破解补丁,这个也适用...
8.4/1,712.3M
专为源泰业主打造的使用服务应用——源泰物业app,业主可以通过些应用了解物业相关服务,园区生活内容和周边商圈介绍,还可在线缴纳物业费。源泰物业app官方介绍由山...
10.0/947.1M
是一款非常好玩的休闲跳跃类游戏,游戏采用精美的画风打造,玩家在游戏中需要控制球来奔跑前进,玩法简单易上瘾!玩法特色穿越障碍物。如果你对这条道路有信心,那么预备队...
9.8/465.2M
面对不断进攻的僵尸你要不断的去升级武器,愤怒爷爷大战僵尸是一款很刺激的射击游戏,成为僵尸杀手,可以解锁不同的武器,将各种类型的僵尸杀死。愤怒爷爷大战僵尸中文版特...
查看
8.3/584.8M
连接用户、单车和教练,YesoulClu俱乐部app有教练进行直播课程,让骑行者直观、全面地掌握运动数据,在家中身临其境的感受教练的专业指导。功能内容基础训练:...
9.4/1,331.8M
即玩云电脑是一款云游戏盒子,在这里玩家能通过该软件,在手机上玩到海量大型端游,而且运行流畅不卡顿,画质也保持在一个超高的水准,除此之外,即玩云电脑每天都有特惠福...
8.4/1,465.2M
中目会议客户端是一款会议的软件,一款专业的是会议软件,它的页面简洁,功能强大,用户能够通过中目随时随地进行团队会议,能够有效加强用户间的写作交流,感兴趣的朋友不...
8.1/1,325.3M
卡通萌宠养成游戏,支持挂机,体积小,休闲又好玩的宠物世界,怎么能错过呢?有休闲玩法,还有开宝箱的玩法,上班挂机应该不错,关于宠物养成总是那么让人无法拒绝,玩法简...