关于文件解压缩这块,上传没事,解压出错了.

海南的男孩子 发布于 2013/03/21 13:51
阅读 193
收藏 0

@whaon 你好,想跟你请教个问题: InputStream is =request.getInputStream();    //获得request的输入流    
   FileOutputStream fos = new FileOutputStream(new File("d:/mldndir.zip"));   
   byte[] b = new byte[1024];  
   int i=0;    
   while((i=is.read(b))!=-1){   
    fos.write(b,0,i);   
    }      
   is.close();  
   fos.close();         
         File file = new File("d:" +  File.separator + "mldndir.zip");   // 找到压缩文件 
         File outFile = null;                      // 定义输出的文件对象 
         ZipFile zipFile = new ZipFile(file);         // 实例化ZipFile对象 
         ZipInputStream zipInput = new ZipInputStream( 
         new FileInputStream(file));         // 实例化ZIP输入流 
         ZipEntry entry = null;      // 定义一个ZipEntry对象,用于接收压缩文件中  的每一个实体 
         InputStream input = null;   // 定义输入流,用于读取每一个ZipEntry 
         OutputStream out = null;    // 定义输出流,用于输出每一个实体内容 
         while ((entry = zipInput.getNextEntry())!= null) { // 得到每一个  ZipEntry 
             System.out.println("解压缩" + entry.getName() + "文件。"); 
             outFile = new File("d:" + File.separator + entry.getName());  // 实例化输出文件 
             if (!outFile.getParentFile().exists()) { // 判断文件夹是否存在 
                 outFile.getParentFile().mkdir();     // 创建文件夹 
            } 
             if (!outFile.exists()) {             // 判断文件是否存在 
                 outFile.createNewFile();            // 不存在则创建新文件 
            } 
             input = zipFile.getInputStream(entry); // 得到压缩实体的输  入流 
             out = new FileOutputStream(outFile);    // 实例化输出流对象 
             int temp = 0; 
             while ((temp = input.read()) != -1) {  // 读取内容 
                 out.write(temp);                   // 输出内容 
            } 
             input.close();                       // 关闭输入流 
             out.close();                       // 关闭输出流 
         }  
     
   

加载中
0
如风随影
如风随影
你确定没错么,看看上传前跟上传后的字节数~
0
mark35
mark35
服务器字符集与客户端不一致?
0
whaon
whaon

出错的异常堆栈信息贴出来

建议使用apache的commons-compress包或者

commons-ant包中的org.apache.tools.zip工具类

0
魔力猫
魔力猫
客户端和服务器上面文件的MD5校验码一致吗?
0
海南的男孩子
海南的男孩子

谢谢大家,我解决了。因为上传时就出错了。呵呵

返回顶部
顶部