问题如题。
我的代码如下:
提交数据的页面upload.jsp,我使用的是Struts框架
<html:form action="/upLoad" enctype="multipart/form-data">
<input name="file" id="file1" type="file">
<input type="text" name="year" >
<html:submit/><html:cancel/>
</html:form>接受处理的类为:
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception {
.....
.....
}急啊,大虾救命......

解决方案 »

  1.   

    我查了很多网页,都说用SmartUpload,但是我调不通代码。
    接受处理的Action为:
    public class UpLoadAction extends Action {
    public ActionForward execute(
    ActionMapping mapping,
    ActionForm form,
    HttpServletRequest request,
    HttpServletResponse response) throws Exception {
    UpLoadForm upLoadForm = (UpLoadForm) form;
    ServletNewList snl = new ServletNewList();
    snl.doPost(request,response);
                      return null;
             }
    }另一个类为:
    public class ServletNewList extends HttpServlet{
    public void doPost(HttpServletRequest request,
    HttpServletResponse response) 
    throws ServletException, IOException{
        SmartUpload temp=new SmartUpload();
        //必须先初始化!!
        servletUpload su = new servletUpload();
    temp.initialize(su.getServletConfig(),request,response);
    String str;
    PrintWriter out=response.getWriter();
    try 
    {
    temp.upload() ;
        //str--获得文本框txt中的值
    String tempStr=temp.getRequest().getParameter("T_wfsj_yyyy");
    request.setCharacterEncoding("gbk");
    str=new String(tempStr.getBytes("gbk"),"ISO8859-1");
    System.out.println("T_wfsj_yyyy is " + str);
    com.jspsmart.upload.File myFile = temp.getFiles().getFile(0);
    //str2--获得fImage中指定的上传文件的路径
    String str2 = myFile.getFilePathName();
    System.out.println("path: " + str2);

    catch (SmartUploadException e) 
    {
    e.printStackTrace();
    }
    catch (IOException e)
    {
    e.printStackTrace();

    catch (ServletException e) 
    {
    e.printStackTrace();
    }

    }
    在jspSmartUpload.jar包中各个类都在com.jspsmart.upload包中,包括File.class,Files.class,Request.class,serletUpload.class,SmartUpload.class,
    SmartUploadException.class报错为:
    2006-4-11 11:01:57 org.apache.catalina.core.StandardWrapperValve invoke
    严重: Servlet.service() for servlet action threw exception
    java.lang.NoClassDefFoundError: servletUpload
    at com.spacen.utilities.ServletNewList.doPost(ServletNewList.java:24)
    at com.spacen.struts.action.UpLoadAction.execute(UpLoadAction.java:60)
    at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
    at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:825)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:738)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:526)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
    at java.lang.Thread.run(Thread.java:595)
      

  2.   

    使用smartupdate好像可以,他本身提供了接收的方法:su.getRequest.getParameter("name");你去查查,我记不清楚了