commons.fileupload.servlet.ServletFileUpload
中  使用struts1 时候 在parseRequest(request)中 会一直为空。。
查了下消息 是说此时的request是被s1重构过的。。
那么各位达达是如何处理这个问题的??  当不使用form收集的话 ServletFileUpload的数据可以进行上传。还有s1 有办法获得原生的request吗?没有被s1处理之前的。。
另外 如果是s2遇到这个问题的话  该如何处理??

解决方案 »

  1.   

    既然被它重构过,那么你用它提供的request也可以获取表单参数的呀!
      

  2.   

    /*
     * Generated by MyEclipse Struts
     * Template path: templates/java/JavaClass.vtl
     */
    package com.sky.struts.action;import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.UnsupportedEncodingException;import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
    import com.sky.struts.form.UploadForm;/** 
     * MyEclipse Struts
     * Creation date: 01-11-2011
     * 
     * XDoclet definition:
     * @struts.action path="/upload" name="uploadForm" input="/upload.jsp" scope="request" validate="true"
     * @struts.action-forward name="success" path="success.jsp"
     */
    public class UploadAction extends Action {
    /*
     * Generated Methods
     */ /** 
     * Method execute
     * @param mapping
     * @param form
     * @param request
     * @param response
     * @return ActionForward
     */
    public ActionForward execute(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response) {
    System.out.println("go to action");
    UploadForm uploadForm = (UploadForm) form;// TODO Auto-generated method stub
    String userName = uploadForm.getUserName();
    System.out.println(userName);
    if(userName !=null){
    try {
    userName= new String (userName.getBytes("ISO8859-1"));
    } catch (UnsupportedEncodingException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }

    }
    if(uploadForm.getMyfile() != null){
    System.out.println(userName);
    System.out.println("有文件");
    System.out.println("文件名称"+uploadForm.getMyfile().getFileName());
    System.out.println("文件大小"+uploadForm.getMyfile().getFileSize());
    try {
    System.out.println("文件内容"+uploadForm.getMyfile().getFileData());
    } catch (FileNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }

    }

    return mapping.findForward("success");
    }
    }可以使用struts1.x自己封装的方法   FormFile