資源簡介
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);//?默認正常狀態(tài)
long?length?=?req.getContentLength();
us.setTotalsize(length);
if?(length?>?maxSize)?{
setStatusMsg(req?-1?“文件內(nèi)容超過最大限制!“);
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\.myme
?????文件????????1226??2013-03-11?11:36??MyUpload\.project
?????目錄???????????0??2013-03-14?10:03??MyUpload\.settings\
?????目錄???????????0??2013-03-14?10:03??MyUpload\ROOT\
?????目錄???????????0??2013-03-14?10:03??MyUpload\ROOT\me
?????文件??????????39??2013-03-11?10:40??MyUpload\ROOT\me
?????目錄???????????0??2013-03-14?10:03??MyUpload\ROOT\WEB-INF\
?????目錄???????????0??2013-03-14?10:03??MyUpload\ROOT\WEB-INF\classes\
?????目錄???????????0??2013-03-14?10:03??MyUpload\ROOT\WEB-INF\classes\com\
?????目錄???????????0??2013-03-14?10:03??MyUpload\ROOT\WEB-INF\classes\com\servlet\
?????文件????????8067??2013-03-14?10:02??MyUpload\ROOT\WEB-INF\classes\com\servlet\UploadFile.class
?????文件????????1828??2013-03-14?10:02??MyUpload\ROOT\WEB-INF\classes\com\servlet\UploadProgressListener.class
?????文件????????1536??2013-03-14?10:02??MyUpload\ROOT\WEB-INF\classes\com\servlet\UploadState.class
?????目錄???????????0??2013-03-14?10:03??MyUpload\ROOT\WEB-INF\classes\com\zip\
?????文件????????4891??2013-03-14?10:02??MyUpload\ROOT\WEB-INF\classes\com\zip\AntZip.class
?????文件????????3430??2013-03-14?10:02??MyUpload\ROOT\WEB-INF\classes\com\zip\DeCompressUtil.class
?????目錄???????????0??2013-03-14?10:03??MyUpload\ROOT\WEB-INF\lib\
?????文件?????1323005??2013-03-12?13:48??MyUpload\ROOT\WEB-INF\lib\ant.jar
?????文件???????57779??2013-03-11?10:44??MyUpload\ROOT\WEB-INF\lib\commons-fileupload-1.2.1.jar
?????文件??????279781??2013-03-11?10:44??MyUpload\ROOT\WEB-INF\lib\commons-httpclient-3.0.1.jar
?????文件??????109043??2013-03-11?10:44??MyUpload\ROOT\WEB-INF\lib\commons-io-1.4.jar
?????文件??????261809??2013-03-11?10:44??MyUpload\ROOT\WEB-INF\lib\commons-lang-2.4.jar
?????文件???????60686??2013-03-11?10:44??MyUpload\ROOT\WEB-INF\lib\commons-logging-1.1.1.jar
?????文件??????189285??2013-03-11?12:02??MyUpload\ROOT\WEB-INF\lib\gson-2.2.2.jar
?????文件??????132819??2013-03-13?16:32??MyUpload\ROOT\WEB-INF\lib\java-unrar-0.3.jar
?????文件?????????620??2013-03-11?11:36??MyUpload\ROOT\WEB-INF\web.xm
?????文件????????3204??2013-03-13?13:06??MyUpload\ROOT\index.jsp
?????目錄???????????0??2013-03-14?10:03??MyUpload\ROOT\js\
............此處省略11個文件信息
評論
共有 條評論