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>&nbsp;</p>
<p align="center">上传文件的选择</p>
<!--
在文件上传时需要传输大量二进制数据或者非ascii字符的文本,因此需要设置enctype="multipart/form-data",此时
method必须为post。它的传输消息包括一系列的数据块,每一块都代表form中的一个变量,并且数据块的顺序和页面上的顺序
一致,块与块之间使用特殊字符分阁 
 -->
 <form method="post" action="do_upload.jsp" enctype="muktipart/form-data">
  <table width="554"  height="144">
  <tr>
  <td><div align="center">
   1、<input type="File"  name="file" size="30">
  </div></td>
      </tr>
      <tr>
      <td><div align="center" >&nbsp;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 name="uploaddername" type="text">
      <input  type="submit" name="submit" value="上传">
      </div></td>
      </tr>
      </table>
   </form>
</body>

</html>upload.jsp页面:
<%@ page language="java" import="java.util.*"   pageEncoding="UTF-8"%>
<%@ page import="com.jspsmart.upload.*"%>
<html>
<head>
 <title>文件上传处理页面</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
</head>
<body>
 <%
    //新建一个samrtupload对象
    SmartUpload su=new SmartUpload();
    //上传初始化
    su.initialize(pageContext);
    //  设定上传限制
    //1.限制每个上传文件的最大长度为10mb
    su.setMaxFileSize(10*1024*1024);
    //2.限制总上传数据的长度
    su.setTotalMaxFileSize(30*1024*1024);
    // 3.设定允许上传的文件(通过扩展名限制),仅允许txt,mp3,wmv文件
    su.setAllowedFilesList("txt,mp3,wmv");
    //4.设定禁止上传的文件(通过扩展名限制),禁止上传带有exe,bat
    su.setDeniedFilesList("exe,bat,jsp,htm,html");
    //上传文件
    su.upload();
    //将上传文件全部保存到指定目录
    //注意这个目录是虚拟目录,相对于web应用的根目录
    int count=su.save("/uoload");
    out.println(count+"个文件上传成功!<br>");
    
    //利用request对象获取参数之值
  out.println("<br>上传账户:"
                   + su.getRequest().getParameter("uploadername")
                   + "<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()+"Byte</td></tr>");
      out.println("<tr><td>文件名(FileName)</td><td>"
                      +file.getFileName()+"</td></tr>");
      out.println("<tr><td>文件扩展名(FieldName)</td><td>"
                      +file.getFileExt()+"</td></tr>");
     out.println("<tr><td>文件全名(FilePathName)</td><td>"
                      +file.getFilePathName()+"</td></tr>");
       out.println("</table><br>");
      
      //将文件另存为
      //路径是相对于web应用的根目录
      file.saveAs("/upload/saveas/"+file.getFieldName(),SmartUpload.SAVE_VIRTUAL);
      //另存到操作系统的根目录为文件目录的目录下
      file.saveAs("d:/temp/upload/"+file.getFieldName(),SmartUpload.SAVE_PHYSICAL);
     }
%>
   
</body>
</html>