页面上有元素 <input type="file" name="file1">
           <input type="file" name="file2">
           <input type="file" name="file3">请问在Action中如何读取这三个文件?request.getParameter("file1")...好像不是用这样的方法吧?
上传上来的文件如何转为File对象?(我要用JXL读取上传上来的Excel文件中的数据)

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【QQ46691550】截止到2008-07-08 14:25:07的历史汇总数据(不包括此帖):
    发帖的总数量:0                        发帖的总分数:0                        每贴平均分数:0                        
    回帖的总数量:1                        得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:0                        结贴的总分数:0                        
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:---------------------结分的百分比:---------------------
    无满意结贴率:---------------------无满意结分率:---------------------
    如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
      

  2.   

    如果你用的是struts,可以用formfile对象。如果没有什么框架,就用commons-fileupload 吧
      

  3.   

    是在Form里声明为FormFile对象的变量
    然后在Action中Form.getFile1();就可以用了吗?可是我用了出现空指针异常了
      

  4.   

    /*
     * Generated by MyEclipse Struts
     * Template path: templates/java/JavaClass.vtl
     *我的是使用common fileupload
     */
    package com.oy.struts.action;import java.io.File;
    import java.util.Iterator;
    import java.util.List;
    import javax.servlet.ServletContext;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import org.apache.commons.fileupload.FileItem;
    import org.apache.commons.fileupload.disk.DiskFileItemFactory;
    import org.apache.commons.fileupload.servlet.ServletFileUpload;
    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;import com.oy.image.model.LoginUser;
    import com.oy.image.service.ImageManager;
    public class KKAction extends Action {
        private static final long serialVersionUID = 2431664260164700200L;
        private ServletContext sc;
        private String savePath;
        private ImageManager imageManager;
           public void setImageManager(ImageManager imageManager) {
            this.imageManager = imageManager;
        }    /**
         * Method execute
         * 
         * @param mapping
         * @param form
         * @param request
         * @param response
         * @return ActionForward
         */
        public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
                HttpServletResponse response) {
            
            savePath =request.getSession().getServletContext().getInitParameter("uploads");
                     
            //savePath=config.getServletContext().getInitParameter("savePath");
            System.out.println("+++++++++++++++++++"+savePath);
    //        if(!new File(savePath).isDirectory())
            System.out.println(new File(savePath).getAbsolutePath());
            if(!new File(savePath).exists())
            {            new File(savePath).mkdirs();
            }
            sc = request.getSession().getServletContext();        
            
            DiskFileItemFactory factory = new DiskFileItemFactory();
            ServletFileUpload upload = new ServletFileUpload(factory);
            String userName = null;
            String url = null;
            try {
                List items = upload.parseRequest(request);
                Iterator it = items.iterator();
                while (it.hasNext()) {
                    FileItem item = (FileItem) it.next();
                    if (item.isFormField()) {
                        userName = item.getString("UTF-8");
                        System.out.println("表单的参数名称:" + item.getFieldName() + ",对应的参数值:"
                                + item.getString("UTF-8"));
                    } else {
                        if (item.getName() != null && !item.getName().equals("")) {                        System.out.println("上传文件的大小:" + item.getSize());
                            System.out.println("上传文件的类型:" + item.getContentType());
                            System.out.println("上传文件的名称:" + item.getName());                        File tempFile = new File(item.getName());
                            File file = new File(sc.getRealPath("/") + savePath, tempFile.getName());
                            url = file.getAbsolutePath();
                            System.out.println(file.getAbsolutePath());
                            item.write(file);                        if (userName != null & userName != "" & url != null & url != "") {
                                LoginUser user = new LoginUser();
                                user.setUername(userName);
                                user.setUerheadurl(url);
                                System.out.println(userName);
                                System.out.println(url);
                                imageManager.save(user);
                            }                        request.setAttribute("upload.message", "上传文件成功!");                    } else {
                            request.setAttribute("upload.message", "没有选择上传文件!");
                        }
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
                request.setAttribute("upload.message", "上传文件不成功!");
            }
            return null;
        }
        
    }
      

  5.   

    request.getParameterValue(“名字”)根据名字取得参数 !~返回一个数组
    用For循环之后进行读取!~
      

  6.   

    页面上有元素 <input type="file" name="file1"> 
              <input type="file" name="file2"> 
              <input type="file" name="file3"> 把name都换成是一样的
      

  7.   

    这个是一个动态添加File的问题,很多人已经实现过了,也有很多这方面的插件可用,
    可以参考一下Faceye开源portal里面关于这一点的实现http://ecsun.javaeye.com
      

  8.   

    在Action里设一个List属性
    private List<File> fileList;
    然后用循环读出
    for(File a:List fileList)
      

  9.   

    名字一样,再用request.getParameterValues("name")就可以返回一个数组,问题解决了
      

  10.   

    action中:
    PageContext pageContext = JspFactory.getDefaultFactory()
    .getPageContext(this.getServlet(), request, response, null,
    true, 8192, true);
    daoImpl public int upload(PageContext pageContext) { // store stuffix
    String suffix = ""; // file upload count
    int count = 0; // test instance
    Person p = new Person(); try { SmartUpload su = new SmartUpload(); // nitialization,must do begin.
    su.initialize(pageContext); // set upload file size is 5MB
    su.setMaxFileSize(5 * 1024 * 1024); // upload by form content
    su.upload(); // cycle get file
    for (int i = 0; i < su.getFiles().getCount(); i++) { // get a file
    com.jspsmart.upload.File myFile = su.getFiles().getFile(i); // if file exist,save
    if (!myFile.isMissing()) { String fileName = myFile.getFileName(); // get file stuffix
    for (int j = 0; j < fileName.length() - 1; j++) { char ch = fileName.charAt(j); char point = '.'; if (ch == point) { suffix = fileName.substring(j, fileName.length());
    }
    }
    Date date = new Date();

    // rename file and save to absoluteness path
    String rename = date.getTime()+ suffix; System.out.println(rename);
    myFile.saveAs("/upload/" + rename,
    SmartUpload.SAVE_VIRTUAL); System.out.println("您成功上传文件-------->" + fileName); /*
     * show the file particular information
     * System.out.println("FieldName=" + myFile.getFieldName() + "<br>"); //
     * file size System.out.println("size=" + myFile.getSize() + "<br>");
     * 
     * System.out.println("--------->" +
     * myFile.getFileName().length());
     * 
     * //file name
     * System.out.println("FileName---------------->" + fileName + "<br>"); //
     * file from path System.out.println("FilePathName=" +
     * myFile.getFilePathName() + "<br>");
     */ p.setPicName(rename);
    p.setPicSize_byte(myFile.getSize());
    p.setPicStorePath("/upload/" + rename);
    count++;
    }
    } // directly save all file
    // count = su.save("d:\\"); System.out.print("您成功上传" + count + "个文件."); // get other form element Enumeration
    java.util.Enumeration e = su.getRequest().getParameterNames(); // Retreive parameters
    while (e.hasMoreElements()) { String key = (String) e.nextElement();
    String[] values = su.getRequest().getParameterValues(key); // Browse the current parameter values
    for (int i = 0; i < values.length; i++) {
    if (key.equals("personName")) {
    p.setPersonName(values[i]);
    }
    if (key.endsWith("personPwd")) {
    p.setPersonPwd(values[i]);
    } // System.out.print(key + " = ");
    // System.out.print(values[i] + "<BR>");
    }
    } // save test instance
    this.getHibernateTemplate().save(p); } catch (Exception e) {
    e.printStackTrace();
    } return count;
    }
    参考,希望对lz有用。