jsp---->Smartupload例子代码
如果表单被封装,则无法使用 request 直接取得输入参数
Smartupload 之中为用户重新提供了一个request 方法,可以取得输入内容
upload.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> < html> < head> < title>文件上传</title> < meta http-equiv="Content-Type" content="text/html; charset=gb2312"> < /head> <body> < p> </p> < p align="center">上传文件选择</p> < FORM METHOD="POST" ACTION="do_upload.jsp" ENCTYPE="multipart/form-data"> < input type="hidden" name="TEST" value="good"> <table width="75%" border="1" align="center"> <tr> <td><div align="center">1、 <input type="FILE" name="FILE1" size="30"> </div></td> </tr> <tr> <td><div align="center">2、 <input type="FILE" name="FILE2" size="30"> </div></td> </tr> <tr> <td><div align="center">3、 <input type="FILE" name="FILE3" size="30"> </div></td> </tr> <tr> <td><div align="center">4、 <input type="FILE" name="FILE4" size="30"> </div></td> </tr> <tr> <td><div align="center"> <input type="submit" name="Submit" value="上传它!"> </div></td> </tr> </table> < /FORM> < /body> < /html>
do_upload.jsp
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.util.*,com.jspsmart.upload.*" errorPage="" %> < html> < head> < title>文件上传处理页面</title> < meta http-equiv="Content-Type" content="text/html; charset=gb2312"> < /head> <body> < % // 新建一个SmartUpload对象 SmartUpload su = new SmartUpload(); // 上传初始化 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(); // 将上传文件全部保存到指定目录 int count = su.save("/upload"); out.println(count+"个文件上传成功!<br>"); // 利用Request对象获取参数之值 out.println("TEST="+su.getRequest().getParameter("TEST") +"<BR><BR>"); // 逐一提取上传文件信息,同时可保存文件。 for (int i=0;i<su.getFiles().getCount();i++) { com.jspsmart.upload.File file = su.getFiles().getFile(i); // 若文件不存在则继续 if (file.isMissing()) continue; // 显示当前文件信息 out.println("<TABLE BORDER=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("../upload3/" + file.getFileName()); // 另存到以WEB应用程序的根目录为文件根目录的目录下 file.saveAs("/upload2/" + file.getFileName(), su.SAVE_VIRTUAL); // 另存到操作系统的根目录为文件根目录的目录下 file.saveAs("c:\\temp\\" + file.getFileName(), su.SAVE_PHYSICAL); } %> < /body> < /html>
download.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> < html> < head> < title>下载</title> < meta http-equiv="Content-Type" content="text/html; charset=gb2312"> < /head> < body> < a href="do_download.jsp">点击下载</a> < /body> < /html>
do_download.jsp
<%@ page contentType="text/html;charset=gb2312" import="com.jspsmart.upload.*" %><% // 新建一个SmartUpload对象 SmartUpload su = new SmartUpload(); // 初始化 su.initialize(pageContext); // 设定contentDisposition为null以禁止浏览器自动打开文件, //保证点击链接后是下载文件。若不设定,则下载的文件扩展名为 //doc时,浏览器将自动用word打开它。扩展名为pdf时, //浏览器将用acrobat打开。 su.setContentDisposition(null); // 下载文件 su.downloadFile("/upload/1.png"); %>