1.Smart.jsp(前台)
<%@ page import="java.util.*" contentType="text/html;charset=gbk" %>
<html>
<head>
<title>文件上传</title>
</head>
<body>
<p align="center">
选择上传文件
</p>
<form style="font-size:20px" method="post" action="Smartdownload.jsp" enctype="multipart/form-data">
<table width="75%" horder="1" align="center" bgcolor="#fdf5e6" bordercolor="#f34d34">
<tr>
<td>
<div align="center">
<font style="font-size:15px;color:#ff8000">上传文件1:</font>
<input type="file" name="file_1" size="40">
</div>
</td>
</tr>
<tr>
<td>
<div align="center">
<font style="font-size:15px;color:#ff8000">上传文件2:</font>
<input type="file" name="file_2" size="40">
</div>
</td>
</tr>
<tr>
<td>
<div align="center">
<font style="font-size:15px;color:#ff8000">上传文件3:</font>
<input type="file" name="file_3" size="40">
</div>
</td>
</tr>
<tr>
<td>
<div align="center">
<font style="font-size:15px;color:#ff8000">上传文件4:</font>
<input type="file" name="file_4" size="40">
</div>
</td>
</tr>
<tr>
<td>
<div align="center">
<font style="font-size:15px;color:#ff8000">上传文件5:</font>
<input type="file" name="file_5" size="40">
</div>
</td>
</tr>
<tr>
<td>
<div align="center">
<font style="font-size:15px;color:#ff8000">上传账户:</font>
<input type="text" name="username" size="40">
<input type="submit" name="submit" value="上传">
</div>
</td>
</tr>
</table>
</form>
</body>
</html>
2.Smartdownload.jsp(后台处理)
<%@page import="com.jspsmart.upload.File"%>
<%@page language="java" import="java.util.*,com.jspsmart.upload.SmartUpload" pageEncoding="gbk"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>文件上传</title>
</head>
<body>
<%
/*新建一个SmartUpload对象*/
SmartUpload la=new SmartUpload();
/*上传初始化*/
la.initialize(pageContext);//pageContext是jsp的内置对象,表示当前整个页面
/*上传文件*/
System.out.println("我能运行到这");
la.upload();//<span style="color:#ff0000;">我老是报空指针异常~~</span>
/*设置上传限制(项目工程的bug控制在千分之五)*/
la.setMaxFileSize(10*1024*1024);//限制每个上传文件的最大长度10M
la.setTotalMaxFileSize(60*1024*1024);//限制总上传数据长度60M
la.setAllowedFilesList("jpg,png");//设置允许上传文件(通过文件的扩展名)
la.setDeniedFilesList("exe,bat,jsp,html,htm");//设置禁止上传文件(通过文件扩展名)
/*将文件全部保存到指定虚拟目录,相当于web的根目录*/
int count=la.save("/uploaderFile");//上传的个数
out.println("<font style='font-size:25px;color:#ff4500'<b>"+count+"个文件上传成功</b></font><br/>");
/*利用request对象获取参数值*/
out.println("<br><font style='font-size:25px;color:#ff4500><b>上传用户:'"+la.getRequest().getParameter("username")+"</b></font>");
/*逐一提取上传文件信息,同时保存文件*/
for(int i=0;i<la.getFiles().getCount();i++){
File file=la.getFiles().getFile(i);//此处的file是com.jspsmart.upload包内的File.class
if(file.isMissing()){//为了应对上传的多个文件中出现空的情况
continue;//跳出当前循环一次
}
/*显示当前文件信息*/
out.println("<table border=1 width=40% bgcolor=#fdf5e6 bordercolor=#688e23>");
out.println("<tr><th><font style='font-size:15px;color:#fa8072'>表单项名</font><td>"+file.getFieldName()+"</td>");//get方法获取文件名称
//如果是图片就让图片预览,否则显示信息(方法总结:getFieldName();getFileExt();getFilePathName();)
if("jpg".equals(file.getFileExt())||"png".equals(file.getFileExt())){//get方法获取文件后缀
out.println("<td colspan='5'><img src='uploaderFile/"+file.getFilePathName()+"'width='100' height='90'/></td>");//get方法获取文件路径
}
out.println("</tr>");
out.println("<tr><th><font style='font-size:15px;color:#fa8072'>文件长度</font></th><td>"+file.getSize()+"Byte</td></tr>");
out.println("<tr><th><font style='font-size:15px;color:#fa8072'>文件名</font></th><td>"+file.getFieldName()+"</td></tr>");
out.println("<tr><th><font style='font-size:15px;color:#fa8072'>文件扩展名</font></th><td>"+file.getFileExt()+"</td></tr>");
out.println("<tr><th><font style='font-size:15px;color:#fa8072'>文件来源</font></th><td>"+file.getFilePathName()+"</td></tr>");
out.println("</table><br>");
//另存到内存中(虚拟路径:一旦服务器停止运行,内存就清空了)
file.saveAs("/uploaderFile/"+file.getFileName(),SmartUpload.SAVE_VIRTUAL);
//另存到物理磁盘上
file.saveAs("D:/uploadDemo"+file.getFieldName(),SmartUpload.SAVE_PHYSICAL);
}
%>
</body>
</html>