資源簡介
jsupload實現js上傳文件,并顯示文件上傳進度

代碼片段和文件信息
package?com.sohu.action;
import?java.io.File;
import?java.io.IOException;
import?java.io.PrintWriter;
import?java.util.Iterator;
import?java.util.List;
import?javax.servlet.ServletException;
import?javax.servlet.annotation.WebServlet;
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.ProgressListener;
import?org.apache.commons.fileupload.FileUploadbase.SizeLimitExceededException;
import?org.apache.commons.fileupload.FileUploadException;
import?org.apache.commons.fileupload.disk.DiskFileItemFactory;
import?org.apache.commons.fileupload.servlet.ServletFileUpload;
/**
?*?Servlet?implementation?class?Upload
?*/
@WebServlet(“/Upload“)
public?class?Upload?extends?HttpServlet?{
private?static?final?long?serialVersionUID?=?1L;
????/**
?????*?Default?constructor.?
?????*/???
????public?Upload()?{
????????//?TODO?Auto-generated?constructor?stub
???? super();
????}
??
/**
?*?@see?HttpServlet#doGet(HttpServletRequest?request?HttpServletResponse?response)
?*/
protected?void?doGet(HttpServletRequest?request?HttpServletResponse?response)?throws?ServletException?IOException?{
doPost(request?response);
}
/**
?*?@see?HttpServlet#doPost(HttpServletRequest?request?HttpServletResponse?response)
?*/
protected?void?doPost(HttpServletRequest?request?HttpServletResponse?response)?throws?ServletException?IOException?{
response.setContentType(“text/html“);
//設置字符編碼為UTF-8,支持漢字顯示
response.setCharacterEncoding(“UTF-8“);
final?long?MAX_SIZE?=?1024?*?1024?*?1024;//設置上傳文件最大為1G
//上傳文件路徑
String?filePath?=?“e:\\upload\\“;
String?tempPath?=?“e:\\upload\\temp\\“;
//jsonp上傳
String?jsonp?=?request.getParameter(“callback“);
//?實例化一個硬盤文件工廠用來配置上傳組件ServletFileUpload
DiskFileItemFactory?dfif?=?new?DiskFileItemFactory();
dfif.setSizeThreshold(1024?*?5);//?設置上傳文件時用于臨時存放文件的內存大小這里是5k.多于的部分將臨時存在硬盤
dfif.setRepository(new?File(tempPath));//?設置存放臨時文件的目錄
//用以上工廠實例化上傳組件
ServletFileUpload?sfu?=?new?ServletFileUpload(dfif);
//設置最大上傳尺寸
sfu.setSizeMax(MAX_SIZE);
PrintWriter?out?=?response.getWriter();
final?HttpSession?session?=?request.getSession();
sfu.setProgressListener(new?ProgressListener()?{
private?long?temp?=?-1;
????public?void?update(long?readBytes?long?totalBytes?int?item)?{
long?size?=?readBytes?/?1024?*?1024?*?10;
if(temp?==?size){
return;
}
temp?=?size;
if?(readBytes?!=?-1)?{
session.setAttribute(“readBytes“?““?+?readBytes);
????session.setAttribute(“totalBytes“?““?+?totalBytes);
}
????}
});
//從request得到?所有?上傳域的列表
List?fileList?=?null;
try?{
fileList?=?sfu.parseRequest(request);
}?catch?(FileUploadException?e)?{//處理文件尺寸過大異常
if?(e?instanceof?SizeLimitE
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2012-01-30?16:15??jsupload\
?????文件?????????601??2012-01-30?09:17??jsupload\.classpath
?????文件????????1041??2012-01-29?18:32??jsupload\.project
?????目錄???????????0??2012-01-30?16:15??jsupload\.settings\
?????文件?????????503??2012-01-29?18:32??jsupload\.settings\.jsdtscope
?????文件?????????395??2012-01-29?18:32??jsupload\.settings\org.eclipse.jdt.core.prefs
?????文件?????????454??2012-01-29?18:32??jsupload\.settings\org.eclipse.wst.common.component
?????文件?????????305??2012-01-29?18:32??jsupload\.settings\org.eclipse.wst.common.project.facet.core.xm
?????文件??????????49??2012-01-29?18:32??jsupload\.settings\org.eclipse.wst.jsdt.ui.superType.container
?????文件???????????6??2012-01-29?18:32??jsupload\.settings\org.eclipse.wst.jsdt.ui.superType.name
?????目錄???????????0??2012-01-30?16:15??jsupload\src\
?????目錄???????????0??2012-01-30?16:15??jsupload\src\com\
?????目錄???????????0??2012-01-30?16:15??jsupload\src\com\sohu\
?????目錄???????????0??2012-01-30?16:15??jsupload\src\com\sohu\action\
?????文件????????6414??2012-01-29?17:48??jsupload\src\com\sohu\action\Upload.java
?????文件????????2839??2012-01-20?16:48??jsupload\src\com\sohu\action\UploadFileMessage.java
?????文件????????1578??2012-01-29?17:00??jsupload\src\com\sohu\action\UploadProgress.java
?????目錄???????????0??2012-01-30?16:15??jsupload\WebContent\
?????目錄???????????0??2012-01-30?16:15??jsupload\WebContent\me
?????文件??????????39??2012-01-29?18:32??jsupload\WebContent\me
?????目錄???????????0??2012-01-30?16:15??jsupload\WebContent\page\
?????目錄???????????0??2012-01-30?16:15??jsupload\WebContent\page\sc
?????文件???????10511??2012-01-30?15:20??jsupload\WebContent\page\sc
?????文件????????6505??2012-01-30?14:27??jsupload\WebContent\page\upload.jsp
?????目錄???????????0??2012-01-30?16:15??jsupload\WebContent\WEB-INF\
?????目錄???????????0??2012-01-30?16:15??jsupload\WebContent\WEB-INF\classes\
?????目錄???????????0??2012-01-30?16:15??jsupload\WebContent\WEB-INF\classes\com\
?????目錄???????????0??2012-01-30?16:15??jsupload\WebContent\WEB-INF\classes\com\sohu\
?????目錄???????????0??2012-01-30?16:15??jsupload\WebContent\WEB-INF\classes\com\sohu\action\
?????文件????????1325??2012-01-30?09:19??jsupload\WebContent\WEB-INF\classes\com\sohu\action\Upload$1.class
?????文件????????5702??2012-01-30?09:19??jsupload\WebContent\WEB-INF\classes\com\sohu\action\Upload.class
............此處省略7個文件信息
評論
共有 條評論