问题描述如下:1、用的是Struts的FormFile。2、上传的jsp文件如下:<form name="bookStepBForm" method="POST" enctype="multipart/form-data" action="<%=request.getContextPath()%>/product/book/pdtStepB.do">
  <input type="hidden" name="method" value="pdtStepBdo">
  <table border="0" cellpadding="0" cellspacing="0" align="center" width="776">
    <tr>
      <td height="25"><input type="file" name="upfile" value="浏览..."></td>
    </tr>
    <tr>
      <td align="center" height="25">
        <input type="button" name="back" value="上一步">
        <input type="reset" name="reset" value="重  填">
        <input type="submit" name="submit" value="上传文件">
      </td>
    </tr>
  </table>
</form>3、ActionForm的内容如下:
import org.apache.struts.action.*;
import org.apache.struts.upload.FormFile;public class BookStepBForm extends ActionForm {
    protected FormFile upfile;    public FormFile getUpfile() {
        return upfile;
    }    public void setUpfile(FormFile upfile) {
        this.upfile = upfile;
    }
}4、Action的内容入下:
public ActionForward pdtStepBdo(
             ActionMapping mapping,
             ActionForm form,
             HttpServletRequest request,
             HttpServletResponse response) throws Exception {
         log.info("=============pdtStepBdo(list) begin=========");
         ……
         ……(代码省略)
         ……
         log.info("=============pdtStepBdo(list)   end=========");
         return mapping.findForward("pdtStepCShow");
     }问题:
1、提交jsp文件后,页面显示为一个空白页面,同时不报任何错误提示。调试中发现程序没有执行pdtStepBdo。
2、测试问题中,将jsp文件中 enctype="multipart/form-data" 或者 <input type="file" name="upfile" value="浏览..."> 去掉,提交jsp页面会顺利执行pdtStepBdo,不过很明显,我没有办法获取上传的文件。
3、同时还有将ActionForm中的代码
    protected FormFile upfile;    public FormFile getUpfile() {
        return upfile;
    }    public void setUpfile(FormFile upfile) {
        this.upfile = upfile;
    }
去除,同样可以顺利提交执行pdtStepBdo。总结:只要加上去后页面结果肯定是空白页,也不报任何错误,求救如何能解决这奇怪的问题。谢谢!!P.S.struts的配置正确。

解决方案 »

  1.   

    该种情况的出现一般取决于文件大小。
    因为Struts文件上传用的是Http协议。在他要上传某个文件时,是需要先对文件封包,然后以数据包的形式上传数据。如果文件过大则在封包过程就很缓慢,直到超时。也就会出现白页面情况。
    这种问题的解决方法是你自定义一个FTP上传标签。
      

  2.   

    bookStepBForm 中有没有SET GET method方法??
      

  3.   

    upfile 还有这个 所有的 input bookStepBForm 有没有他们的 SET GET 方法
      

  4.   


    呵呵没仔细看。现在看清楚了,,,这个是属于 struts 标签方法所以 
    <html:file property="upfile" /><form 要改成 html:form