-
大小: 173KB文件類型: .rar金幣: 2下載: 0 次發(fā)布日期: 2021-06-10
- 語言: Java
- 標(biāo)簽:
資源簡介
java+jquery文件上傳,無刷新上傳,顯示上傳進度(如5%),上傳速度,已上傳大小,剩于大小,已上傳時間,統(tǒng)計上傳所需時間,統(tǒng)計還剩多長時間

代碼片段和文件信息
package?servlet.upload;
import?java.io.File;
import?java.io.FileOutputStream;
import?java.io.IOException;
import?java.io.InputStream;
import?java.io.OutputStream;
import?java.util.Iterator;
import?java.util.List;
import?javax.servlet.ServletException;
import?javax.servlet.http.HttpServlet;
import?javax.servlet.http.HttpServletRequest;
import?javax.servlet.http.HttpServletResponse;
import?org.apache.commons.fileupload.FileItem;
import?org.apache.commons.fileupload.disk.DiskFileItemFactory;
import?org.apache.commons.fileupload.servlet.ServletFileUpload;
public?class?ProgressUploadServlet?extends?HttpServlet?{
protected?void?doGet(HttpServletRequest?req?HttpServletResponse?resp)
throws?ServletException?IOException?{
resp.setHeader(“Cache-Control“?“no-store“);//?禁止瀏覽器緩存
resp.setHeader(“Pragrma“?“no-cache“);//?禁止瀏覽器緩存
resp.setDateHeader(“Expires“?0);//?禁止瀏覽器緩存
UploadStatus?status?=?(UploadStatus)?req.getSession(true).getAttribute(
“uploadstatus“);
if?(status?==?null)?{
this.log(“沒有上傳文件!“);
return;
}
long?startTime?=?status.getStartTime();
long?currentTime?=?System.currentTimeMillis();
long?time?=?(currentTime?-?startTime)?/?1000?+?1;?//?已傳輸?shù)臅r間?單位:s
double?velocity?=?((double)?status.getByteRead())?/?(double)?time;//?傳輸速度
//?bytes/s
double?totalTime?=?status.getContentLength()?/?velocity;//?估計時間
double?timeLeft?=?totalTime?-?time;//?剩余時間
int?percent?=?(int)?(100?*?(double)?status.getByteRead()?/?(double)?status
.getContentLength());//?已完成的百分比
double?length?=?((double)?status.getByteRead()?/?1024?/?1024);//?已完成數(shù)
//?單位:M
double?totalLength?=?((double)?status.getContentLength())?/?1024?/?1024;//?總長度:
//?單位:M
//?格式:
//?百分比||已完成數(shù)(M)||文件總長度(M)||傳輸速率(K)||已用時間(S)||估計總時間(S)||估計剩余時間(S)||正在上傳第幾個文件
String?value?=?percent?+?“||“?+?length?+?“||“?+?totalLength?+?“||“
+?velocity?+?“||“?+?time?+?“||“?+?totalTime?+?“||“?+?timeLeft
+?“||“?+?status.getItems();
resp.getWriter().print(value);//?輸出給瀏覽器進度條
}
protected?void?doPost(HttpServletRequest?req?HttpServletResponse?resp)
throws?ServletException?IOException?{
UploadStatus?status?=?new?UploadStatus();//?上傳狀態(tài)
UploadListener?listener?=?new?UploadListener(status);//?監(jiān)聽器
req.getSession(true).setAttribute(“uploadstatus“?status);
ServletFileUpload?upload?=?new?ServletFileUpload(
new?DiskFileItemFactory());//?解析
upload.setProgressListener(listener);//?設(shè)置上傳的listener
try?{
// upload.setSizeMax(10*1024*1024);//設(shè)置大小,超出則拋出FileUploadException
List?itemList?=?upload.parseRequest(req);
for?(Iterator?it?=?itemList.iterator();?it.hasNext();)?{
FileItem?item?=?(FileItem)?it.next();
if?(!item.isFormField())//?如果是非表單數(shù)據(jù)
{
if(item.getName().length()<=0)return;//表示后面的文件域沒有選中文件
this.log(“file?size:?“+((double)item.getSize()/1024/1024)+“M“);
this.log(“file?type:“+item.
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????629??2011-12-10?14:48??upload\.settings\org.eclipse.jdt.core.prefs
?????文件????????120??2011-12-10?14:48??upload\.settings\com.genuitec.jboss.ide.eclipse.xdoclet.run.prefs
?????文件???????1040??2011-12-10?14:48??upload\.settings\com.genuitec.eclipse.j2eedt.core.prefs
?????文件????????137??2011-12-10?14:48??upload\.settings\org.eclipse.ltk.core.refactoring.prefs
?????文件????????799??2011-12-08?22:01??upload\src\servlet\upload\UploadStatus.java
?????文件????????585??2011-12-08?22:09??upload\src\servlet\upload\UploadListener.java
?????文件???????4228??2011-12-10?14:35??upload\src\servlet\upload\ProgressUploadServlet.java
?????文件??????57779??2011-12-08?22:05??upload\WebRoot\WEB-INF\lib\commons-fileupload-1.2.1.jar
?????文件?????109043??2011-12-08?22:05??upload\WebRoot\WEB-INF\lib\commons-io-1.4.jar
?????文件???????1177??2011-12-10?14:43??upload\WebRoot\WEB-INF\classes\servlet\upload\UploadStatus.class
?????文件????????774??2011-12-10?14:43??upload\WebRoot\WEB-INF\classes\servlet\upload\UploadListener.class
?????文件???????4467??2011-12-10?14:43??upload\WebRoot\WEB-INF\classes\servlet\upload\ProgressUploadServlet.class
?????文件????????707??2011-12-10?14:44??upload\WebRoot\WEB-INF\web.xm
?????文件?????????36??2011-12-04?10:39??upload\WebRoot\me
?????文件???????2701??2011-12-10?13:47??upload\WebRoot\upload.jsp
?????文件??????72174??2011-12-08?22:57??upload\WebRoot\js\jquery-1.4.2.min.js
?????文件????????526??2011-12-08?22:05??upload\.classpath
?????文件????????292??2011-12-10?14:48??upload\.myme
?????文件???????1281??2011-12-04?10:39??upload\.project
?????文件?????????66??2011-12-10?14:48??upload\.myumldata
?????目錄??????????0??2011-12-10?14:43??upload\WebRoot\WEB-INF\classes\servlet\upload
?????目錄??????????0??2011-12-10?14:43??upload\WebRoot\WEB-INF\classes\servlet
?????目錄??????????0??2011-12-08?22:00??upload\src\servlet\upload
?????目錄??????????0??2011-12-04?10:39??upload\WebRoot\WEB-INF\lib
?????目錄??????????0??2011-12-04?10:39??upload\WebRoot\WEB-INF\classes
?????目錄??????????0??2011-12-04?10:41??upload\src\servlet
?????目錄??????????0??2011-12-04?10:39??upload\WebRoot\WEB-INF
?????目錄??????????0??2011-12-04?10:39??upload\WebRoot\me
?????目錄??????????0??2011-12-08?22:57??upload\WebRoot\js
?????目錄??????????0??2011-12-04?10:39??upload\.settings
............此處省略7個文件信息
評論
共有 條評論