用apache的一个开源项目fileupload可以轻松的实现文件的上传,目前的最新版本是commons-fileupload-1.2,可以到apache的网站下载 import java.io.File;import java.util.Iterator;import java.util.List;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import org.apache.struts.actions.MappingDispatchAction;import org.apache.commons.fileupload.*;import org.apache.commons.fileupload.disk.DiskFileItemFactory;import org.apache.commons.fileupload.servlet.ServletFileUpload;public class UploadFile extends MappingDispatchAction ......{ private static final int FILE_SIZE = 4194304; public ActionForward upload(ActionMapping mapping, ActionForm form, HttpServletRequest request,HttpServletResponse response) ......{ try ......{ DiskFileItemFactory fc = new DiskFileItemFactory(); //设置文件的最大限度,如果超出这个限度,则将文件写入磁盘 fc.setSizeThreshold(4000); //文件超过最大限度时,写入磁盘的临时路径 fc.setRepository(new File("E: mp")); ServletFileUpload fu = new ServletFileUpload(fc); //设置最大文件尺寸,单位为字节,这里是4MB fu.setSizeMax(FILE_SIZE); //得到所有的文件: List fileItems = fu.parseRequest(request); Iterator i = fileItems.iterator(); //依次处理每一个文件: while(i.hasNext()) ......{ FileItem fi = (FileItem)i.next(); //获得文件名,这个文件名包括路径: String fileName = fi.getName(); if (fi.getSize() > FILE_SIZE) throw new Exception("File is too large!"); fileName = fileName.substring(fileName.lastIndexOf("") + 1, fileName.length()); //写入文件 fi.write(new File("e: mps" + fileName)); } } catch (Exception e) ......{ // TODO Auto-generated catch block e.printStackTrace(); return mapping.findForward("uploadFail"); } return mapping.findForward("success"); }}页面代码:<%...@ page pageEncoding="utf-8"%><html> <body> <form action="upload.do" method="post" enctype="multipart/form-data"> <center> 选择文件路径: <input type=file name="filename"/><br> <input type=submit value="上传"/> </center> </form> </body></html>