/*** <p>Title:UpLoadAction</p>* <p>Description: QRRSMMS </p>* <p>Copyright: Copyright (c) 2004 jiahansoft</p>* <p>Company: jiahansoft</p>* @author wanghw* @version 1.0*/public class UpLoadAction extends Action {public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response)throws Exception {if (form instanceof uploadsForm) {//如果form是uploadsFormString encoding = request.getCharacterEncoding();if ((encoding != null) && (encoding.equalsIgnoreCase("utf-8"))){response.setContentType("text/html; charset=gb2312");//如果没有指定编码,编码格式为gb2312}UpLoadForm theForm = (UpLoadForm ) form;FormFile file = theForm.getTheFile();//取得上传的文件try {InputStream stream = file.getInputStream();//把文件读入String filePath = request.getRealPath("/");//取当前系统路径ByteArrayOutputStream baos = new ByteArrayOutputStream();OutputStream bos = new FileOutputStream(filePath + "/" +file.getFileName());//建立一个上传文件的输出流//System.out.println(filePath+"/"+file.getFileName());int bytesRead = 0;byte[] buffer = new byte[8192];while ( (bytesRead = stream.read(buffer, 0, 8192)) != -1) {bos.write(buffer, 0, bytesRead);//将文件写入服务器}bos.close();stream.close();}catch(Exception e){System.err.print(e);}//request.setAttribute("dat",file.getFileName());return mapping.findForward("display");}return null;}}
import javax.servlet.http.HttpServletRequest;import org.apache.struts.action.*;import org.apache.struts.upload.*;/*** <p>Title:UpLoadForm</p>* <p>Description: QRRSMMS </p>* <p>Copyright: Copyright (c) 2004 jiahansoft</p>* <p>Company: jiahansoft</p>* @author wanghw* @version 1.0*/
public class UpLoadForm extends ActionForm {public static final String ERROR_PROPERTY_MAX_LENGTH_EXCEEDED = "org.apache.struts.webapp.upload.MaxLengthExceeded";protected FormFile theFile;public FormFile getTheFile() {return theFile;}public void setTheFile(FormFile theFile) {this.theFile = theFile;}public ActionErrors validate(ActionMapping mapping, HttpServletRequest request){ActionErrors errors = null;//has the maximum length been exceeded?Boolean maxLengthExceeded = (Boolean)request.getAttribute(MultipartRequestHandler.ATTRIBUTE_MAX_LENGTH_EXCEEDED);if ((maxLengthExceeded != null) && (maxLengthExceeded.booleanValue())){errors = new ActionErrors();errors.add(ERROR_PROPERTY_MAX_LENGTH_EXCEEDED, new ActionError("maxLengthExceeded"));}return errors;
}}//这是相对应的form,还有其他属性可以设置,具体可以参考struts的上传例子。