form中用了enctype="multipart/form-data",但是上传部分却没有用到SmartUpload组件,是前辈们自己写的方法,方法中没有取值,现在要取页面值我用了SmartUpload :SmartUpload su = new SmartUpload();
String str = null;
str = su.getRequest().getParameter("community");这样取页面的值都为null,请问这是哪里出现了问题???谢谢。。

解决方案 »

  1.   

    form表单的提交方式一定要用POST,这个注意了吗?给你简单的实例:
    //新建一个SmartUpload对象      SmartUpload su = new SmartUpload();      //上传初始化      su.initialize(pageContext);      //设定上传限制      // 1.限制每个上传文件的最大长度。      // su.setMaxFileSize(10000);      // 2.限制总上传数据的长度。      // su.setTotalMaxFileSize(20000);      // 3.设定允许上传的文件(通过扩展名限制),仅允许doc,txt文件。      // su.setAllowedFilesList("doc,txt");      // 4.设定禁止上传的文件(通过扩展名限制),禁止上传带有exe,bat,      jsp,htm,html扩展名的文件和没有扩展名的文件。      // su.setDeniedFilesList("exe,bat,jsp,htm,html,,");      //上传文件      su.upload();      //将上传文件全部保存到指定目录      int count = su.save("/upload");      out.println(count+"个文件上传成功!<br>");            //利用Request对象获取参数之值      out.println("TEST="+su.getRequest().getParameter("TEST")      +"<BR><BR>");       //逐一提取上传文件信息,同时可保存文件。      for (int i=0;i<su.getFiles().getCount();i++)      {               com.jspsmart.upload.File file = su.getFiles().getFile(i);                              //若文件不存在则继续               if (file.isMissing()) continue;                //显示当前文件信息               out.println("<TABLE BORDER=1>");               out.println("<TR><TD>表单项名(FieldName)</TD><TD>"               + file.getFieldName() + "</TD></TR>");               out.println("<TR><TD>文件长度(Size)</TD><TD>" +               file.getSize() + "</TD></TR>");               out.println("<TR><TD>文件名(FileName)</TD><TD>"               + file.getFileName() + "</TD></TR>");               out.println("<TR><TD>文件扩展名(FileExt)</TD><TD>"               + file.getFileExt() + "</TD></TR>");               out.println("<TR><TD>文件全名(FilePathName)</TD><TD>"               + file.getFilePathName() + "</TD></TR>");               out.println("</TABLE><BR>");                //将文件另存               // file.saveAs("/upload/" + myFile.getFileName());               //另存到以WEB应用程序的根目录为文件根目录的目录下               // file.saveAs("/upload/" + myFile.getFileName(),               su.SAVE_VIRTUAL);               //另存到操作系统的根目录为文件根目录的目录下               // file.saveAs("c:\\temp\\" + myFile.getFileName(),               su.SAVE_PHYSICAL);       }
      

  2.   

    form中是post这个没问题,jsp页面的上传用的不是 SmartUpload,可以用 SmartUpload取表单的值么??可以忽略上传这块,我现在只想取到表单的参数,su.initialize(pageContext);这句话我写字action中就会有错误。谢谢你
      

  3.   

    我搞不清你到底用的什么上传组件了???
    如果是有SmartUpload组件,其他字段读取的话你先要用SmartUpload对象初始化一下,把request读进来:
    SmartUpload   mySmartUpload   =   new   SmartUpload(); 
    mySmartUpload.initialize(config,   request,   response); 
    mySmartUpload.upload(); 
    name   =   mySmartUpload.getRequest().getParameter( "name "); 
      

  4.   

    是之前他们自己写的一个组件,初始化我试过一直报错,可能是jdk的问题吧。我已经用两个form解决了,还是谢谢你!