JAVA 上传ZIPRAR文件并解压


java上传文件 实时获取上传进度 上传RAR,ZIP 并指定解压路劲 上传之后会按照路劲进行解压
资源截图
代码片段和文件信息
package com.servlet;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Random;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

import com.google.gson.Gson;
import com.zip.DeCompressUtil;

public class UploadFile extends HttpServlet {

private static final long serialVersionUID = 1L;
private String uploadpath = “upload“;// 文件上传地址
private String unpackpath = ““;
private long maxSize = 100 * 1024 * 1024;// 最大文件大小100M
private String limitfile = “ziprar“;// 限制上传类型docdocxxlsxlsxppthtmhtmltxt
private Gson gson = new Gson();

@Override
protected void doGet(HttpServletRequest req HttpServletResponse resp) {
try {
req.setCharacterEncoding(“UTF-8“);
resp.setContentType(“text/html; charset=UTF-8“);
String upid = req.getParameter(“upid“);
UploadState state = (UploadState) req.getSession().getAttribute(“upstate“);
String s=““;
if (upid!=null&&state != null && upid.equals(state.getId())) {
s = gson.toJson(state);
}
System.out.println(state+“ GET:“+upid+“_“+s);
PrintWriter out = resp.getWriter();
out.write(s);
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}

@Override
protected void doPost(HttpServletRequest req HttpServletResponse resp) {
try {
req.setCharacterEncoding(“UTF-8“);
resp.setContentType(“text/html; charset=UTF-8“);

String s=““;
PrintWriter out = resp.getWriter();
boolean ismulti=ServletFileUpload.isMultipartContent(req);
if(ismulti){
HttpSession session=req.getSession();
UploadState us=(UploadState)session.getAttribute(“upstate“);
if (us == null) {
us = new UploadState();
session.setAttribute(“upstate“ us);
}
us.setTargetfile(““);
us.setErrormsg(““);
us.setTotalsize(0);
us.setUploadsize(0);
us.setState(0);// 默认正常状态
long length = req.getContentLength();
us.setTotalsize(length);
if (length > maxSize) {
setStatusMsg(req -1 “文件内容超过最大限制!“);
s = gson.toJson(us);
} else {
processFileUpload(req out);
s = gson.toJson(us);
}
}

out.write(s);
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}


}

@SuppressWarnings(“unchecked“)
public void processFileUpload(HttpServletRequest r

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2013-03-14 10:03  MyUpload
     文件         965  2013-03-13 16:32  MyUpload.classpath
     目录           0  2013-03-14 10:03  MyUpload.myeclipse
     文件         294  2013-03-11 10:40  MyUpload.mymetadata
     文件        1226  2013-03-11 11:36  MyUpload.project
     目录           0  2013-03-14 10:03  MyUpload.settings
     目录           0  2013-03-14 10:03  MyUploadROOT
     目录           0  2013-03-14 10:03  MyUploadROOTmeta-INF
     文件          39  2013-03-11 10:40  MyUploadROOTmeta-INFMANIFEST.MF
     目录           0  2013-03-14 10:03  MyUploadROOTWEB-INF
     目录           0  2013-03-14 10:03  MyUploadROOTWEB-INFclasses
     目录           0  2013-03-14 10:03  MyUploadROOTWEB-INFclassescom
     目录           0  2013-03-14 10:03  MyUploadROOTWEB-INFclassescomservlet
     文件        8067  2013-03-14 10:02  MyUploadROOTWEB-INFclassescomservletUploadFile.class
     文件        1828  2013-03-14 10:02  MyUploadROOTWEB-INFclassescomservletUploadProgressListener.class
     文件        1536  2013-03-14 10:02  MyUploadROOTWEB-INFclassescomservletUploadState.class
     目录           0  2013-03-14 10:03  MyUploadROOTWEB-INFclassescomzip
     文件        4891  2013-03-14 10:02  MyUploadROOTWEB-INFclassescomzipAntZip.class
     文件        3430  2013-03-14 10:02  MyUploadROOTWEB-INFclassescomzipDeCompressUtil.class
     目录           0  2013-03-14 10:03  MyUploadROOTWEB-INFlib
     文件     1323005  2013-03-12 13:48  MyUploadROOTWEB-INFlibant.jar
     文件       57779  2013-03-11 10:44  MyUploadROOTWEB-INFlibcommons-fileupload-1.2.1.jar
     文件      279781  2013-03-11 10:44  MyUploadROOTWEB-INFlibcommons-httpclient-3.0.1.jar
     文件      109043  2013-03-11 10:44  MyUploadROOTWEB-INFlibcommons-io-1.4.jar
     文件      261809  2013-03-11 10:44  MyUploadROOTWEB-INFlibcommons-lang-2.4.jar
     文件       60686  2013-03-11 10:44  MyUploadROOTWEB-INFlibcommons-logging-1.1.1.jar
     文件      189285  2013-03-11 12:02  MyUploadROOTWEB-INFlibgson-2.2.2.jar
     文件      132819  2013-03-13 16:32  MyUploadROOTWEB-INFlibjava-unrar-0.3.jar
     文件         620  2013-03-11 11:36  MyUploadROOTWEB-INFweb.xml
     文件        3204  2013-03-13 13:06  MyUploadROOTindex.jsp
     目录           0  2013-03-14 10:03  MyUploadROOTjs
............此处省略11个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)