不是,可以用apache的fileupoload

解决方案 »

  1.   

    获取上传文件的代码片段:
    String temp=request.getSession().getServletContext().getRealPath("/")+"temp";   //临时目录
            System.out.println("temp="+temp);
            String loadpath=request.getSession().getServletContext().getRealPath("/")+"Image"; //上传文件存放目录
            File tempFile=new File(temp);
            File loadPathFile=new File(loadpath);
            if(!tempFile.exists()){
             tempFile.mkdirs();
            }
            if(!loadPathFile.exists()){
             loadPathFile.mkdirs();
            }
            System.out.println("loadpath="+loadpath);
            DiskFileUpload fu = new DiskFileUpload();
            fu.setSizeMax(1*1024*1024);   // 设置允许用户上传文件大小,单位:字节 
            fu.setSizeThreshold(4096);   // 设置最多只允许在内存中存储的数据,单位:字节 
            fu.setRepositoryPath(temp); // 设置一旦文件大小超过getSizeThreshold()的值时数据存放在硬盘的目录 
            
            //开始读取上传信息 
            int index=0;
            List fileItems = null;
                 
                          
                                 try {
                                         fileItems = fu.parseRequest(request);
                                          System.out.println("fileItems="+fileItems);
                                 } catch (Exception e) {
                                         e.printStackTrace();
                                 }
                          
                 
            Iterator iter = fileItems.iterator(); // 依次处理每个上传的文件
            while (iter.hasNext())
            {
                FileItem item = (FileItem)iter.next();// 忽略其他不是文件域的所有表单信息
                if (!item.isFormField())
                {
                    String name = item.getName();//获取上传文件名,包括路径
                    System.out.println("111111111name:"+name);
                    name=name.substring(name.lastIndexOf("\\")+1);//从全路径中提取文件名
                    long size = item.getSize();
                    if((name==null||name.equals("")) && size==0) 
                          continue; 
                    int point = name.indexOf(".");
                    name=(new Date()).getTime()+name.substring(point,name.length());
                    System.out.println("222222222222name:"+name);
                    index++;
                    File fNew= new File(loadpath, name);
                    try {
                                         item.write(fNew);
                                 } catch (Exception e) {
                                         // TODO Auto-generated catch block
                                         e.printStackTrace();
                                 }
                    
                   
                }使用fileupoload可以保存上传的文件,但是我想知道的是在客户端使用reqEntity.addPart("comment", comment);这个的key的意义何在?