首先下载两个包:commons-fileupload-1.1.1.jarcommons-io-1.2.jar(这个包必不可少哦)

放到
<% TOMECAT的目录 %>\common\lib
<% JAVA_HOME %>\jre\lib\ext目录下

处理代码如下

<%@ page contentType="text/html; charset=GBK" %>
<%@ page import="java.util.List,java.util.Iterator"%>
<%@ page import="org.apache.commons.fileupload.*"%>
<%@ page import="java.io.File"%>
<html>
    <head><title>upload</title></head>
    <body>
    <%
        DiskFileUpload dfu=new DiskFileUpload();
        //设置上传数据的最大大小为10M。
        dfu.setSizeMax(0xA00000);
        //设置内存缓冲区的阀值为512K。
        dfu.setSizeThreshold(0x80000);
        //设置临时存储文件的目录为E:\fileupload。
        dfu.setRepositoryPath("E:\\fileupload");
        //得到FileItem对象的列表。
        List fileItems=dfu.parseRequest(request);
        Iterator it = fileItems.iterator();
    %>
        <table cellpadding="3" border="1">
    <%
        //依次处理每个上传的文件
        while (it.hasNext())
        {
            FileItem item = (FileItem) it.next();
            //判断是否是文件域的表单信息
            if (!item.isFormField())
            {
                String name = item.getName();
                long size = item.getSize();
                if((name==null || name.equals("")) && size==0)
                    continue;
    %>
            <tr>
                <td><%=item.getName()%></td>
                <td><%=item.getSize()%></td>
            </tr>
    <%
                //保存上传的文件到指定的目录
                File dir=new File("E:\\UploadFile");
                //如果浏览器传送的文件名是全路径名,则取出文件名。
                int index=name.lastIndexOf(File.separator);
                if(index>0)
                    name=name.substring(index+1,name.length());
                File file=new File(dir,name);
                item.write(file);
            }
            else
            {
    %>
            <tr>
                <td><%=item.getFieldName()%></td>
                <td><%=item.getString()%></td>
            </tr>
    <%
            }
        }
    %>
        </table>
    </body>
</html>