使用jspSmartUpload组件进行文件上传、下载

jspSmartUpload组件是一个可以免费使用的文件上传与下载组件。用户可以把他安装在web服务器上,再进行使用。
jspSmartUpload组件使用非常简单。在jsp文件中仅需要写几行代码就可以实现文件的上传、下载。并能够全程控制上传。利用jspSmartUpload|组件提供的对象及其操作方法,可以获得全部上传、下载的信息,如文件名,大小,类型、扩展名。。。。以方便文件的存取;能对上传的文件在大小、类型等方面做出限制。这样就可以过滤掉不符合要求的文件;下载灵活。只须写很少的代码就能把web服务器变成文件服务器,不管文件在不在web服务器的目录下,都可以利用该组件进行下载。
在使用jspSmartUpload时,必须将该组件放在项目中相应的目录里,如:WebRoot/WEB-INF/lib
一、文件上传
下面是一个jsp页面,表单中有4个文件输入文本框,可以同时上传4个文件:
<form action="file?file=upLoadByjs" method="post" ENCTYPE="multipart/form-data"> <input type="file" name=file1" size="30"><Br> <input type="file" name=file2" size="30"><Br> <input type="file" name=file3" size="30"><Br> <input type="file" name=file4" size="30"><Br> <input type="submit" value="上传"> </form>
当然可以设置同时上传更多的文件......
servlet处理程序:
String path ="D:/work space/JSP workspace/jsp_servlet_upAndLoad/file/upLoad"; //新建一个jsmartUpLoad对象 SmartUpload smartUpload = new SmartUpload(); //上传初始化 smartUpload.initialize(this.getServletConfig(),request,response); try { //设定上传限制 //限制每个上传文件的最大长度;将最大设定为1024*1024*20 smartUpload.setMaxFileSize(1024*1024*10); //限制总上传数据的长度 smartUpload.setTotalMaxFileSize(1024*1024*20); //限制允许上传的文件类型、允许doc、txt、bat文件 smartUpload.setAllowedFilesList("doc,txt,bat"); //限制禁止上传的文件类型,禁止exe、jsp、和没有扩展名的文件 smartUpload.setDeniedFilesList("exe,jsp,,"); //上传文件 smartUpload.upload(); //将文件保存到指定的目录下 smartUpload.save(path); } catch (SQLException e) { e.printStackTrace(); } catch (SmartUploadException e) { e.printStackTrace(); } //逐一提取文件信息,同时输出上传文件的信息 for (int i = 0; i < smartUpload.getFiles().getCount(); i++) { com.jspsmart.upload.File myFile =smartUpload.getFiles().getFile(i); //若文件表单中的文件选项没有选择文件则继续 if(myFile.isMissing()) continue; //显示当前文件的信息 response.setContentType("text/html;charset=utf-8"); PrintWriter out = response.getWriter(); out.println("<table border='1'>"); out.println("<tr><td>表单选项</td><td>"+myFile.getFieldName()+"</td></tr>"); out.println("<tr><td>文件长度:</td><td>"+myFile.getSize()+"</td></tr>"); out.println("<tr><td>文件名</td><td>"+myFile.getFileName()+"</td></tr>"); out.println("<tr><td>文件扩展名</td><td>"+myFile.getFileExt()+"</td></tr>"); out.println("<tr><td>文件全名</td><td>"+myFile.getFilePathName()+"</td></tr>"); out.println("</table><br>"); }
该程序直接使用SmartUploa对象来实现文件上传。在申请对象后,必须要对其进行初始化:smartUpload.initialize(this.getServletConfig(),request,response);

二、文件下载
使用jspSmartUpload组件进行文件下载,可以非常简单:
jsp页面:
<a href="${pageContext.request.contextPath }/file1?file=downByJsmart&name=user.txt">下载user</a>
处理程序:
//获取下载文件名 String fileName = request.getParameter("name"); //新建一个smartUpload对象 SmartUpload smartUpload = new SmartUpload(); //初始化 smartUpload.initialize(this.getServletConfig(), request, response); //设定contentDisposition为null以禁止浏览器自动打开文件 //保证单击链接后是下载文件。 smartUpload.setContentDisposition(null); //下载文件 try { smartUpload.downloadFile("D:/work space/JSP workspace/jsp_servlet_upAndLoad/file/upLoad/"+fileName); } catch (SmartUploadException e) { e.printStackTrace(); }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
真正解决jspSmartUpload组件上传下载文件时中文乱码问题。以前在网上也找过!!!下载了些,都没能解决中文乱码问题!自己改了源代码,并做成jar包,直接用就可以。 另,我把File()类 改成了 SmartFile()类。详情请下载。 另我的Blog有详细描述 http://blog.csdn.net/cartonwang/archive/2008/10/28/3168114.aspx 用朋友问到:译后的结果啊,怎么用啊 ------------------------------------------- 我看了下,给的是jar包。直接用就好了。用法和原版的差不多。稍微有点不同。原版:com.jspsmart.upload.File 我的:com.jspsmart.upload.SmartFile 原版的是File类,我的是SmartFile类。另,http://download.csdn.net/source/796632 中有上传文件时不刷新页面的方法。我浦发银行的项目就是用这些方法。很好用。 ------------------------------------------------ gylsm发表的评论 真是晕死,用原版的上传还是支持中文的,你的连上传都成了乱码了,又没讲下你的用法和原版的区别,都不知道可不可以用 --------------------------------------------------------------------------- 我上面已经讲了吧,其实和原版的没有什么区别的,唯一一个地方要注意的是File()类我改成SmartFile()了,你用该类时,改成SmartFile()类就好了。 如果还不能用,很可能是你没有把原来的Jar包给删除。 时间:2009-04-09 18:45:48 来自:61.142.100.* ming100star发表的评论 谢谢伟大的楼主!! 时间:2009-04-06 15:48:04 来自:220.249.99.* zwei27发表的评论 朋友太谢谢你了,我到网上怎么都找不到,你帮我搞定,SKS
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值