SmartUpload上传文件(转载)
实现文件的上传
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 2 <html> 3 <head> 4 <title>文件上传</title> 5 <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 6 </head> 7 8 <body> 9 <p> </p> 10 <p align="center">上传文件选择</p> 11 <form method="POST" action="do_upload.jsp" enctype="multipart/form-data" > 12 13 <input type="hidden" name="TEST" value="good"> 14 <table width="75%" border="1" align="center"> 15 16 17 <tr> 18 <td><div align="center">1、 19 <input type="FILE" name="FILE1" size="30"> 20 </div></td> 21 22 </tr> 23 <tr> 24 <td><div align="center">2、 25 <input type="FILE" name="FILE2" size="30"> 26 </div></td> 27 </tr> 28 29 <tr> 30 <td><div align="center">3、 31 <input type="FILE" name="FILE3" size="30"> 32 </div></td> 33 </tr> 34 35 <tr> 36 <td><div align="center">4、 37 <input type="FILE" name="FILE4" size="30"> 38 </div></td> 39 </tr> 40 41 <tr> 42 <td><div align="center"> 用户名: 43 <input type="text" name="username" > 44 </div></td> 45 </tr> 46 47 <tr> 48 <td><div align="center"> 49 <input type="submit" name="Submit" value="提交"> 50 </div></td> 51 </tr> 52 53 54 </table> 55 </form> 56 </body> 57 </html>
1 <%@ page contentType="text/html; charset=gb2312" language="java" 2 import="java.util.*,com.jspsmart.upload.*" errorPage="" %> 3 <html> 4 <head> 5 <title>文件上传处理页面</title> 6 <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 7 </head> 8 9 <body> 10 11 <% 12 // 新建一个SmartUpload对象 13 SmartUpload su = new SmartUpload(); 14 // 上传初始化 ,PageContext是jsp的内置对象,在servlet不能直接使用,需要做一些处理 15 su.initialize(pageContext); // 16 // 设定上传限制 17 18 // 1.限制每个上传文件的最大长度。 19 su.setMaxFileSize(100000); 20 // 2.限制总上传数据的长度。 21 su.setTotalMaxFileSize(200000); 22 // 3.设定允许上传的文件(通过扩展名限制),仅允许doc,txt,jpg文件。 23 su.setAllowedFilesList("doc,txt,jpg"); 24 // 4.设定禁止上传的文件(通过扩展名限制),禁止上传带有exe,bat, jsp,htm,html扩展名的文件和没有扩展名的文件。 25 su.setDeniedFilesList("exe,bat,jsp,htm,html"); 26 27 28 // 上传文件 29 su.upload(); //同名的文件会被覆盖 30 // 将上传文件全部保存到Tomcat指定目录 31 int count = su.save("/upload",SmartUpload.SAVE_VIRTUAL); 32 out.println(count+"个文件上传成功!<br>"); 33 34 // 利用Request对象获取参数之值 35 out.println("username="+su.getRequest().getParameter("username")+"<br><br >"); 36 37 // 逐一提取上传文件信息,同时可保存文件。 38 for (int i=0;i<su.getFiles().getCount();i++){ 39 40 //Files类:所有上传文件的集合 41 //getCount取得上传文件的数目 42 //getFile取得指定位移处的文件对象File 43 //getSize取得上传文件的总长度,可用于限制一次性上传的数据量的大小 44 45 46 com.jspsmart.upload.File file = su.getFiles().getFile(i); 47 //SmartUpload类 getFiles取得所有上传文件,以File对象形式返回 48 // 若文件不存在则继续(isMissing 判断用户是否选择了文件,也即对应的表单项是否有值。 49 //选择了文件时,它返回false,未选文件时,它返回true) 50 if (file.isMissing()) continue; 51 file.saveAs("D:\\Workspaces\\MyEclipse 10\\Test\\WebRoot\\upload\\" + file.getFileName(), su.SAVE_PHYSICAL); 52 53 // 显示当前文件信息 54 out.println("<TABLE BORDER=1>"); 55 out.println("<TR><TD>表单项名(FieldName)</TD><TD>" 56 + file.getFieldName() + "</TD></TR>"); 57 out.println("<TR><TD>文件长度(Size)</TD><TD>" + 58 file.getSize() + "</TD></TR>"); 59 out.println("<TR><TD>文件名(FileName)</TD><TD>" 60 + file.getFileName() + "</TD></TR>"); 61 out.println("<TR><TD>文件扩展名(FileExt)</TD><TD>" 62 + file.getFileExt() + "</TD></TR>"); 63 out.println("<TR><TD>文件全名(FilePathName)</TD><TD>" 64 + file.getFilePathName() + "</TD></TR>"); 65 out.println("</TABLE><BR>"); 66 67 // 将文件另存 68 // file.saveAs("/upload/" + myFile.getFileName()); 69 // 另存到以WEB应用程序的根目录为文件根目录的目录下 70 //file.saveAs("D:\\Workspaces\\MyEclipse 10\\Test\\WebRoot\\upload\\" + file.getFileName(), su.SAVE_PHYSICAL); 71 // 另存到操作系统的根目录为文件根目录的目录下 72 // file.saveAs("c:\\temp\\" + myFile.getFileName(), su.SAVE_PHYSICAL); 73 74 } 75 %> 76 77 </body> 78 </html>
实现文件的下载
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 2 <html> 3 <head> 4 <title>下载</title> 5 <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 6 </head> 7 <body> 8 <a href="do_download.jsp">点击下载</a> 9 </body> 10 11 </html>
1 <%@ page contentType="text/html;charset=gb2312" 2 import="com.jspsmart.upload.*" %> 3 <% 4 // 新建一个SmartUpload对象 5 SmartUpload su = new SmartUpload(); 6 // 初始化 7 su.initialize(pageContext); 8 // 设定contentDisposition为null以禁止浏览器自动打开文件, 9 //保证点击链接后是下载文件。若不设定,则下载的文件扩展名为 doc时, 10 //浏览器将自动用word打开它。扩展名为pdf时, 浏览器将用acrobat打开。 11 su.setContentDisposition(null); 12 // 下载文件 13 su.downloadFile("/upload/01.jpg"); 14 %>
努力,生活总会有改变