首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

(急)jsp下传压缩文件并到服务器端能自动解压

2012-08-25 
(急)jsp上传压缩文件并到服务器端能自动解压上传压缩文件我可以实现了,就是不知道怎么让压缩文件在指定的

(急)jsp上传压缩文件并到服务器端能自动解压
上传压缩文件我可以实现了,就是不知道怎么让压缩文件在指定的目录(即文件上传到的目录)下解压,请大家帮忙!
有代码最好了,呵呵,在线等。。。。

[解决办法]
1 你会解压缩吗?
2 既然会,那么把上传的文件保存成文件,然后解开不就行了!

[解决办法]
java.unil.zip.ZipFile
解压
[解决办法]

Java code
import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.util.zip.ZipEntry;import java.util.zip.ZipInputStream;import java.util.zip.ZipOutputStream;public class TestZip {    public void zip(String zipFileName, String inputFile) throws Exception {        zip(zipFileName, new File(inputFile));    }    public void zip(String zipFileName, File inputFile) throws Exception {        ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFileName));        zip(out, inputFile, "");        System.out.println("zip done");        out.close();    }    public void unzip(String zipFileName, String outputDirectory)            throws Exception {        ZipInputStream in = new ZipInputStream(new FileInputStream(zipFileName));        ZipEntry z;        while ((z = in.getNextEntry()) != null) {            System.out.println("unziping " + z.getName());            if (z.isDirectory()) {                String name = z.getName();                name = name.substring(0, name.length() - 1);                File f = new File(outputDirectory + File.separator + name);                f.mkdir();                System.out.println("mkdir " + outputDirectory + File.separator                        + name);            } else {                File f = new File(outputDirectory + File.separator                        + z.getName());                f.createNewFile();                FileOutputStream out = new FileOutputStream(f);                int b;                while ((b = in.read()) != -1)                    out.write(b);                out.close();            }        }        in.close();    }    public void zip(ZipOutputStream out, File f, String base) throws Exception {        System.out.println("Zipping  " + f.getName());        if (f.isDirectory()) {            File[] fl = f.listFiles();            out.putNextEntry(new ZipEntry(base + "/"));            base = base.length() == 0 ? "" : base + "/";            for (int i = 0; i < fl.length; i++) {                zip(out, fl[i], base + fl[i].getName());            }        } else {            out.putNextEntry(new ZipEntry(base));            FileInputStream in = new FileInputStream(f);            int b;            while ((b = in.read()) != -1)                out.write(b);            in.close();        }    }    public static void main(String[] args) {        try {            TestZip t = new TestZip();            t.zip("D:/zip.zip", "D:/zip");            t.unzip("D:/zip.zip", "D:/newZip");        } catch (Exception e) {            e.printStackTrace(System.out);        }    }}
[解决办法]
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;

public class ZipToFile {


public static boolean zipToFile(String sZipPathFile, String sDestPath) {
boolean flag = false;
try {
  
FileInputStream fins = new FileInputStream(sZipPathFile);
  
ZipInputStream zins = new ZipInputStream(fins);
ZipEntry ze = null;
byte ch[] = new byte[256];
while ((ze = zins.getNextEntry()) != null) {


File zfile = new File(sDestPath + "//" + ze.getName());
File fpath = new File(zfile.getParentFile().getPath());
if (ze.isDirectory()) {
if (!zfile.exists())
zfile.mkdirs();
zins.closeEntry();
} else {
if (!fpath.exists())
fpath.mkdirs();
FileOutputStream fouts = new FileOutputStream(zfile);
int i;
String zfilePath = zfile.getAbsolutePath();
while ((i = zins.read(ch)) != -1)
fouts.write(ch, 0, i);
zins.closeEntry();
fouts.close();
  
if (zfilePath.endsWith(".zip")) { 
zipToFile(zfilePath, zfilePath.substring(0, zfilePath
.lastIndexOf(".zip")));
}
  
}
}
fins.close();
zins.close();
// if necessary, delete original zip-file
File file = new File(sZipPathFile);
file.delete();
flag = true;
} catch (Exception e) {
System.err.println("Extract error:" + e.getMessage());
}
return flag;

}
public static void main(String[] args) {
String sZipPathFile = "E:\\software\\apache-tomcat-6.0.16\\webapps\\Wochz\\01\\English\\0\\a.zip";
String sDestPath = "E:\\software\\apache-tomcat-6.0.16\\webapps\\Wochz\\01\\English\\0\\";
System.out.println(ZipToFile.zipToFile(sZipPathFile, sDestPath));
}
  

}
這個能實現上傳並自動解壓,然後刪除那個文件隻留下壓縮文件,有一點那個文件名必須是字母形式
[解决办法]
上传你会了,在上传后边加个解压就OK了.

Java实现压缩与解压缩功能源码

热点排行