要从页面上传不确定数目的附件,在ActionForward execute里ActionServlet ppp = super.getServlet(),然后用了mySmartUpload.initialize(ppp.getServletConfig(),request,response),到执行mySmartUpload.upload()时,机器cpu占用100%,进度条不动了,偶晕啊

解决方案 »

  1.   

    既然用struts了干吗用jspsmartUpload,当FormFile是摆设??
      

  2.   

    因为传的是不确定数目的附件,我感觉jspsmart用起来方便。
      

  3.   

    smartupload是基于jsp的,他需要一些jsp环境变量
      

  4.   

    nicolahul(皮皮虎) 你有用FormFile上传不定数目附件的代码吗,有的话能给偶参考参考吗。
      

  5.   

    在页面中由js控制自由添加<input type=file>,jspsmart很好解决这个问题,formfile中我不太清楚怎么解决这个问题,所以想在struts中使用jspsmart,就出现了上面说的情况,哭
      

  6.   

    FormFile formFile1 = form.getTheFile1();
    FormFile formFile2 = form.getTheFile2();if(formFile1 != null && formFile1.getFileSize() != 0){
                OutputStream bos = new FileOutputStream(formFile1.getFileName());
                InputStream stream = formFile1.getInputStream();
                int bytesRead = 0;
                byte[] buffer = new byte[65536];  //buffer try to get better perfomance
                while ((bytesRead = stream.read(buffer, 0, 65536)) != -1) {
                    bos.write(buffer, 0, bytesRead);
                }
                bos.close();
                stream.close();
    }formFile2雷同formFile1
      

  7.   

    由js控制自由添加<input type=file>
    这个偶没试过,不过所谓的js控制多个<input type=file>其实就是提交多个name是同一个的FormFile对象罢了,不过如果是<input type=text>的话只要用一个String[]就可以得到了,file偶去试试看,8知道能不能行的通
      

  8.   

    好像8可以提交多个name为通一个的file。
    struts在处理上传的时候是把所有的file放在一个Hashtable里面,而key就是name,下面是它的源代码:
            File tempFile = element.getFile();
            if(tempFile.exists())
            {
                DiskFile theFile = new DiskFile(tempFile.getAbsolutePath());
                theFile.setContentType(element.getContentType());
                theFile.setFileName(element.getFileName());
                theFile.setFileSize((int)tempFile.length());
                fileElements.put(element.getName(), theFile);
                allElements.put(element.getName(), theFile);
            }