我现在的项目,不能用struts框架,所以传图片的时候,form里加了enctype="multipart/form-data",request就取不到其他参数的值了。我网上查了下资料,说是加上SmartUpload su = new SmartUpload();//新建一个SmartUpload对象 su.getRequest().getParameter('produce');取单个参数单个值 但是,我加了之后,取到的是空,包我也引正确的,不知道什么原因了,求助

解决方案 »

  1.   

    jsp文件上传
    http://blog.csdn.net/AnyJack/archive/2004/11/05/168616.aspx
    http://chengyu2099.javaeye.com/admin/blogs/580606
      

  2.   

    SmartUpload su = new SmartUpload();//新建一个SmartUpload对象  su.getRequest().getParameter('produce');取单个参数单个值  
    是不是你的参数名错了啊.
      

  3.   

    给你一个完整的页面,我这里用是没有问题的,希望能够帮上你.
    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
    <%@ page import="java.util.Date" %>
    <%@page import="com.jspsmart.upload.SmartFile"%>
    <jsp:useBean id="mySmartUpload" scope="page" class="com.jspsmart.upload.SmartUpload" />
    <html>
    <head>
    <META content="text/html; charset=UTF-8" http-equiv=Content-Type>
    <title></title>
    </head><body>
    <%
    String sql="";
    //ResultSet rs=null;
    String uploadPath = gm.getProperty("upload.path.baseinfo.drivers");
    String userName = session.getAttribute("userName").toString();
    String url="./view.jsp";
    //if (true) return;
    try{
    db.createConnection();
    db.conn.setAutoCommit(false);
    mySmartUpload.initialize(pageContext);
        mySmartUpload.upload();
    SmartFile myFile = mySmartUpload.getFiles().getFile(0);
    String driverSN=mySmartUpload.getRequest().getParameter("driverSN").trim();
    String filename="";
    /******保存上传的附档文件资料(start)*******/
    if(!myFile.isMissing()){
         //获得文件名
         String fileName=myFile.getFileName();  //获得上传文件的文件名
     //out.println(fileName);if(true) return;
     String ext=myFile.getFileExt();        //获得上传文件的后缀名  
     //修改上传的文件名
     filename=userName+gm.dateFormat(new Date(),"yyyyMMDDHHmmss")+"."+ext;//变更文件名
     //out.println("filename="+filename+"<br>");if(true) return;
     //保存文件
     String filepathname=uploadPath+filename;
     //out.println(filepathname+"<br>");//if(true) return;
     java.io.File file1 = new java.io.File(filepathname);
     if(file1.exists()){file1.delete();}
     myFile.saveAs(filepathname);
        }
    /******保存上传的附档文件资料(end)*******/
    sql="update "+accessDBName+"driverInfo set uploadFile='"+filename+"',editUser='"+userName+"',editDate=getDate() where driverSN='"+driverSN+"'";
    //out.println(sql+"<br> ok!"); if(true) return;
    //System.out.println(sql);
    db.stmt.executeUpdate(sql);
    db.conn.commit();
    response.sendRedirect(url);
    }catch(Exception e){
    out.println(loginPage+"-->>"+e.getMessage());
    System.out.println(loginPage+"-->>"+e.getMessage());
    try{
    db.conn.rollback();  //回滚
    }catch(Exception err){ 
    System.out.println(loginPage+"页面回滚时出现异常:"+err.toString());
    }
    }finally{
    db.freeConnection();
    }
    %>
    </body>
    </html>
      

  4.   

    我是在servlet里做的,不知道pageContext这个是怎么得到的,网上很多人都用这个
      

  5.   

    呵呵,这个你就没办法了吧.可以换一下的.写个类去继承,主要是那个init方法的,里边主要是为了得到几个对象,你覆盖方法,或者新增加方法,完成它的init方法就行了.这是源码 public final void initialize(PageContext pageContext)
            throws ServletException
        {
            m_application = pageContext.getServletContext();
            m_request = (HttpServletRequest)pageContext.getRequest();
            m_response = (HttpServletResponse)pageContext.getResponse();
        }你新增加一个方法,完成它的这几个功能就行了.希望你能顺利完成,代码就不给你写出来了
      

  6.   

    form里加了enctype="multipart/form-data"SmartUpload su = new SmartUpload();
    su.getRequest().getParameter('produce');
    这都是没问题的,FORM是POST传值吧?我想应该也没问题,建议LZ还是检查下是不是哪打错字了,呵呵
      

  7.   

    楼主,我有遇到过你这个问题.我最后是这样解决的.呵呵,看我的空间文章
    http://hi.baidu.com/liang125353769/blog/item/af8331cae5c0ecf152664fe7.html