我用的是jspSmartUpload组件,我的代码是这样:
  <form name="form3" action="Image" ENCTYPE="multipart/form-data"   method="post">
  
  <table  border="">
   <tr>
   <td>
   标签号:
   </td>
   <td>
   <input type="text" name="id" value="">
   </td>
   </tr>
   <tr>
     <td>上传图片:</td>
     <td colspan="2">
     <input name="imgfile" type="file" id="imgfile" size="40" onchange="viewmypic(showimg,this.form.imgfile);" />
     <input type=hidden name="id1" value="">
         <input name="button1" type="submit" value="上传">
     </td>
    </tr>  </table>
  </form>
我想把imgfile和id一起传到servlet中可是id=null.
我用了这样的方法  SmartUpload uploader=new SmartUpload();
        String id =uploader.getRequest().getParameter("id");
可是还是不行!!!请老大们教我。

解决方案 »

  1.   

    HttpSmartUpload uploader=new HttpSmartUpload();好像是 回家给你查查
      

  2.   

    ㈢ Request类   这个类的功能等同于JSP内置的对象request。只所以提供这个类,是因为对于文件上传表单,通过request对象无法获得表单项的值,必须通过jspSmartUpload组件提供的Request对象来获取。该类提供如下方法: 1、getParameter 作用:获取指定参数之值。当参数不存在时,返回值为null。 原型:public String getParameter(String name)。其中,name为参数的名字。 2、getParameterValues 作用:当一个参数可以有多个值时,用此方法来取其值。它返回的是一个字符串数组。当参数不存在时,返回值为null。 原型:public String[] getParameterValues(String name)。其中,name为参数的名字。 3、getParameterNames 作用:取得Request对象中所有参数的名字,用于遍历所有参数。它返回的是一个枚举型的对象。 原型:public Enumeration getParameterNames() 
      

  3.   

    还有这种事啊,学习,我一直用struts里自带的方法
      

  4.   

    我刚在做公司一个项目上传这块,建议你去看看例子,不是很难http://blog.hunan2s.com/article.asp?id=115你在接request的时候最好不要用selvet处理,直接用另一个jsp页面处理就好了
      

  5.   

    主要是Form中的ENCTYPE="multipart/form-data"这个的原因,这么设置getParameter方法就取不到值,我也正在寻找解决的办法,
    我用的是FileUpload组件,和你遇到同样的问题,等待高手解答!
    顶下
      

  6.   

    可以在页面里使用<%request.setAttribute("",value)%> 
    因为那个属性ENCTYPE="multipart/form-data"是不能接受字符流的
      

  7.   

    我也遇到了跟你一样的问题,但我通过两天的实验解决了,我把总结的经验写到博客里了
    http://blog.csdn.net/thinker28754/archive/2007/05/26/1626844.aspx
      

  8.   

    用 String cplb=mySmartUpload.getRequest().getParameter("cplb");代替原来的String cplb=request.getParameter("cplb");就OK了,简单吧!o(∩_∩)o...
    我用的是JSP和SMARTUPLOAD上传组件,其他平台下还不知道
      

  9.   

    apache fileupload
    FileItem item = (FileItem)fileItems.get(0);
    String title = item.getString();
      

  10.   

        Request requestSu = mySmartUpload.getRequest();
    op_code=requestSu.getParameter("op_code");
       LZ能看懂不?
    jspSmartUpload组件里可以得到一个Request对象
    用这个对象就可以获得表单的参数
      

  11.   

    我也到这样问题,我把ENCTYPE= "multipart/form-data " 这个去掉了就没有问题
      

  12.   

    iu_yy(我爱大咪咪) 14楼的方法我已经实验成功了,多谢多谢,
    public ActionForward execute(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response) throws Exception {

                   try {
    request.setCharacterEncoding("GBK");
    } catch (Exception e) {
    e.printStackTrace();
    }
            

    DiskFileUpload fu = new DiskFileUpload();

    //开始读取上传信息
    List fileItems = fu.parseRequest(request);

    // 依次处理每个上传的文件
    Iterator iter = fileItems.iterator();

    //取得表单提交的各个参数
    FileItem item1 = (FileItem) fileItems.get(0);
    FileItem item3 = (FileItem) fileItems.get(2);
    FileItem item4 = (FileItem) fileItems.get(3);
    FileItem item5 = (FileItem) fileItems.get(4);
    String czrydm=item1.getString();
    String taxid=item3.getString();
    String msgtitle=item4.getString();
    String message=item5.getString();

            System.out.println("czrydm is:"+czrydm);
    System.out.println("taxid is:"+taxid);
    System.out.println("msgtitle is:"+msgtitle);
    System.out.println("message is:"+message);
    System.out.println("Msgid is:"+msg.getMsgid());

    //取得并保存附件
    String filePath = "";
    String fileName = "";
    while (iter.hasNext())
          {
       FileItem item = (FileItem) iter.next();
       //忽略其他不是文件域的所有表单信息
       if (!item.isFormField())
       {
    String name = item.getName();//获取上传的文件名
    long size = item.getSize();//获取上传的文件大小(字节为单位)
    if ((name == null || name.equals("")) && size == 0)
    continue;//跳到while检查条件
    //以下为文件名处理,将上传的文件保存在项目所在目录下。
    //获取文件名字符串的长度
    int end = name.length();
    //返回在此字符串中最右边出现的指定子字符串的索引。
    int begin = name.lastIndexOf("\\");
    int ext = name.lastIndexOf(".");
    String savedname = name.substring(begin , ext)+"_"+Tool.GUID()+name.substring(ext , end);
    File savedFile = new File("d:\\DATA",savedname); 
    item.write(savedFile);
    //获取文件存放路径
    filePath = "d:\\DATA\\" + savedname.substring(1);
    fileName = name;
       }
      }
    System.out.println("filePath is:"+filePath);
    System.out.println("fileName is:"+fileName);

    return false;
    }
    }