成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > 基于Ajax技術(shù)實現(xiàn)文件上傳帶進度條

基于Ajax技術(shù)實現(xiàn)文件上傳帶進度條

熱門標簽:地圖標注項目怎么樣 機器人電銷騙局揭秘 個人怎樣在百度地圖標注地名 超級大富翁地圖標注 騰訊地圖標注位置能用多久 硅語電話機器人公司 越南河內(nèi)地圖標注 ai機器人電銷資源 云呼外撥網(wǎng)絡電話系統(tǒng)

1.概述

在實際的Web應該開發(fā)或網(wǎng)站開發(fā)過程中,經(jīng)常需要實現(xiàn)文件上傳的功能。在文件上傳過程中,經(jīng)常需要用戶進行長時間的等待,為了讓用戶及時了解上傳進度,可以在上傳文件的同時,顯示文件的上傳進度條。運行本實例,如圖1所示,訪問文件上傳頁面,單擊“瀏覽”按鈕選擇要上傳的文件,注意文件不能超過50MB,否則系統(tǒng)將給出錯誤提示。選擇完要上傳的文件后,單擊“提交”按鈕,將會上傳文件并顯示上傳進度。

2.技術(shù)要點

主要是應用開源的Common-FileUpload組件來實現(xiàn)分段文件上傳,從而實現(xiàn)在上傳過程中,不斷獲取上傳進度。下面對Common-FileUpload組件進行詳細介紹。

Common-FileUpload組件時Apache組織下的jakarta-commons項目下的一個子項目,該組件可以方便地將multipart/form-data類型請求中的各種表單域解析出來。該組件需要另一個名為Common-IO的組件的支持。這兩個組件包文件可以到http://commons.apache.org網(wǎng)站上進行下載。

(1)創(chuàng)建上傳對象

在應該Common-FileUpload組件實現(xiàn)文件上傳時,需要創(chuàng)建一個工廠對象,并根據(jù)該工廠對象創(chuàng)建一個新的文件上傳對象,具體代碼如下:

DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory); 

(2)解析上傳請求

創(chuàng)建一個文件上傳對象后,就可以應用該對象來解析上傳請求,獲取全部的表單項,可以通過文件上傳對象的parseRequest()方法來實現(xiàn)。parseRequest()方法的語法結(jié)構(gòu)如下:

public List parseRequest(HttpServletRequest request) throws FileUploadException 

(3)FileItem類

在Common-FileUpload組件中,無論是文件域還是普通表單域,都當成FileItem對象來處理。如果該對象的isFormField()方法返回值為true,則表示是一個普通表單域,否則為一個文件域。在實現(xiàn)文件上傳時,可以通過FileItem類的getName()方法獲得上傳文件的文件名,通過getSize()方法獲得上傳文件的大小。

3.具體實現(xiàn)

(1)創(chuàng)建request.js文件,在該文件中編寫Ajax請求方法。

(2)新建文件上傳頁index.jsp,在該頁中添加用于獲得上傳文件信息的表單以及表單元素,并添加用于顯示進度條的div>標簽和顯示百分比的span>標簽,關(guān)鍵代碼如下:

form enctype="multipart/form-data" method="post" action="UpLoad?action=uploadFile">

請選擇上傳的文件:input name="file" type="file" size="34">

注:文件大小請控制在50M以內(nèi)。

div id="progressBar" class="prog_border" align="left">
img src="images/progressBar.gif" width="0" height="13" id="imgProgress">/div>
span id="progressPercent" style="width:40px;display:none">0%/span>
input name="Submit" type="button" value="提交" onClick="deal(this.form)">
input name="Reset" type="reset" class="btn_grey" value="重置">/td>
/form> 

(3)新建上傳文件的Servlet實現(xiàn)類UpLpad。在該類中編寫實現(xiàn)文件上傳的方法uploadFile(),在該方法中通過Common-FileUpload組件實現(xiàn)分段上傳文件,并計算上傳百分比,實時保存到Session中,關(guān)鍵代碼如下:

public void uploadFile(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=GBK");
request.setCharacterEncoding("GBK");
HttpSession session=request.getSession();
session.setAttribute("progressBar",0); //定義指定上傳進度的Session變量
String error = "";
int maxSize=50*1024*1024; //單個上傳文件大小的上限
DiskFileItemFactory factory = new DiskFileItemFactory(); //創(chuàng)建工廠對象
ServletFileUpload upload = new ServletFileUpload(factory); //創(chuàng)建一個新的文件上傳對象
try {
List items = upload.parseRequest(request); // 解析上傳請求
Iterator itr = items.iterator(); // 枚舉方法
while (itr.hasNext()) {
FileItem item = (FileItem) itr.next(); //獲取FileItem對象
if (!item.isFormField()) { // 判斷是否為文件域
if (item.getName() != null  !item.getName().equals("")) {//是否選擇了文件
long upFileSize=item.getSize(); //上傳文件的大小
String fileName=item.getName(); //獲取文件名
if(upFileSize>maxSize){
error="您上傳的文件太大,請選擇不超過50M的文件";
break;
}
// 此時文件暫存在服務器的內(nèi)存中
File tempFile = new File(fileName); //構(gòu)造文件目錄臨時對象
String uploadPath = this.getServletContext().getRealPath("/upload");
File file = new File(uploadPath,tempFile.getName()); 
InputStream is=item.getInputStream();
int buffer=1024; //定義緩沖區(qū)的大小
int length=0;
byte[] b=new byte[buffer];
double percent=0;
FileOutputStream fos=new FileOutputStream(file);
while((length=is.read(b))!=-1){
percent+=length/(double)upFileSize*100D; //計算上傳文件的百分比
fos.write(b,0,length); //向文件輸出流寫讀取的數(shù)據(jù)
session.setAttribute("progressBar",Math.round(percent)); 
}
fos.close();
Thread.sleep(1000); //線程休眠1秒
} else {
error="沒有選擇上傳文件!";
}
}
}
} catch (Exception e) {
e.printStackTrace();
error = "上傳文件出現(xiàn)錯誤:" + e.getMessage();
}
if (!"".equals(error)) {
request.setAttribute("error", error);
request.getRequestDispatcher("error.jsp").forward(request, response);
}else {
request.setAttribute("result", "文件上傳成功!");
request.getRequestDispatcher("upFile_deal.jsp").forward(request, response);
}
} 

(4)在文件上傳頁index.jsp中,導入編寫的Ajax請求方法的request.js文件,并編寫獲取上傳進度的Ajax請求方法和Ajax回調(diào)函數(shù),關(guān)鍵代碼如下:

script language="javascript" src="js/request.js">/script>
script language="javascript">
var request = false;
function getProgress(){ 
var url="showProgress.jsp"; //服務器地址
var param ="nocache="+new Date().getTime(); //每次請求URL參數(shù)都不同 ,避免上傳時進度條不動
request=httpRequest("post",url,true,callbackFunc,param); //調(diào)用請求方法 
}
//Ajax回調(diào)函數(shù)
function callbackFunc(){
if( request.readyState==4 ){ //判斷響應是否完成 
if( request.status == 200 ){ //判斷響應是否成功
var h = request.responseText; //獲得返回的響應數(shù)據(jù),該數(shù)據(jù)位上傳進度百分比
h=h.replace(/\s/g,""); //去除字符串中的Unicode空白符
document.getElementById("progressPercent").style.display=""; //顯示百分比 
progressPercent.innerHTML=h+"%"; //顯示完成的百分比
document.getElementById("progressBar").style.display="block"; //顯示進度條
document.getElementById("imgProgress").width=h*(235/100); //顯示完成的進度
}
}
}
/script> 

(5)編寫showProgress.jsp頁面,在該頁中應用EL表達式輸出保存在session域中的上傳進度條的值,具體代碼如下:

%@page contentType="text/html" pageEncoding="GBK"%>
${progressBar} 

(6)編寫表單提交按鈕onclick事件所調(diào)用的JavaScript方法,在該方法通過window對象的setInterval()方法每隔一定時間請求一次服務器,獲得最新的上傳進度,關(guān)鍵代碼如下:

function deal(form){
form.submit(); //提交表單
timer=window.setInterval("getProgress()",500); //每隔500毫秒獲取一次上傳進度
}

以上所述是小編給大家介紹的基于Ajax技術(shù)實現(xiàn)文件上傳帶進度條的相關(guān)知識,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

您可能感興趣的文章:
  • jQuery監(jiān)聽文件上傳實現(xiàn)進度條效果的方法
  • jQuery實現(xiàn)文件上傳進度條特效
  • Jquery Uploadify多文件上傳帶進度條且傳遞自己的參數(shù)
  • 基于fileUpload文件上傳帶進度條效果的實例(必看)

標簽:洛陽 邢臺 內(nèi)蒙古 鄭州 舟山 林芝 遼源 海南

巨人網(wǎng)絡通訊聲明:本文標題《基于Ajax技術(shù)實現(xiàn)文件上傳帶進度條》,本文關(guān)鍵詞  基于,Ajax,技術(shù),實現(xiàn),文件,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《基于Ajax技術(shù)實現(xiàn)文件上傳帶進度條》相關(guān)的同類信息!
  • 本頁收集關(guān)于基于Ajax技術(shù)實現(xiàn)文件上傳帶進度條的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    男人日女人视频网站| 免费的成人av| 国产亚洲精品bv在线观看| 7m精品国产导航在线| 性欧美猛交videos| 欧美成人精品一级| 99精品久久久久久中文字幕| 欧美人与禽zozo性伦| 欧美亚洲精品一区| h动漫在线视频| 亚洲免费在线视频一区 二区| 亚洲av毛片在线观看| 色诱亚洲精品久久久久久| 性猛交ⅹxxx富婆video| 在线看欧美视频| 中文字幕日韩在线视频| 在线视频2区| 欧美色资源站| 国产精品久久久久久久久久东京| 女主播福利一区| 成人在线视频区| 奇米精品一区二区三区| av免费在线观看不卡| www.女人的天堂.com| 四虎影院观看视频在线观看| 男的插女的下面视频| 成人免费91在线看| 国产日韩精品视频一区| 成人性生活av| 久久国产精品久久| 国产精品毛片a∨一区二区三区| 国产嫩草影院久久久久| 亚洲精品视频久久| 久久66热这里只有精品| 人人妻人人澡人人爽欧美一区| 国产自产视频| 少妇一级淫免费播放| 深夜福利国产精品| 经典一区二区三区| 日本午夜精品视频| 亚洲 欧美 国产 另类| 亚洲男女性事视频| 97超级碰碰人国产在线观看| 欧美人与禽zoz0善交| 精品久久久久久久| 99久久精品免费| 五月激情六月丁香| 国产精品23p| 欧美亚洲另类久久综合| 青春草视频在线观看| 成人免费视频一区| 日韩高清在线| 欧产日产国产v| 亚洲精品videossex少妇| 成人免费视频国产免费麻豆| 久久久精品国产一区二区三区| 2014亚洲天堂| 亚洲国产综合av| 91青青草免费在线看| 精品国产av一区二区三区| 亚洲色欲色欲www| 国产99久久久国产精品成人免费| 欧州一区二区三区| 污污视频网站免费观看| 日韩不卡免费高清视频| 色999韩欧美国产综合俺来也| 国产精品久久久久久久久久久久久久久久久久| 欧美激情欧美激情| 天天综合网在线| 欧美电影免费观看| 色综合久久久888| 国产性生活大片| 午夜在线一区二区| 国产精品一区二区免费福利视频| 秋霞成人午夜伦在线观看| 欧美人动性xxxxz0oz| 亚洲精品一线| 亚洲电影成人成人影院| 99re热精品视频| 国产91精品入口| 日本精品一区二区三区在线观看视频| 欧美老女人在线视频| 黄色片中文字幕| 最新69国产成人精品视频免费| 国产精品福利网| www.亚洲一区二区| 喜爱夜蒲2在线| 可以看毛片的网址| 国产欧美综合精品一区二区| 欧美激情亚洲天堂| 91亚洲精品在看在线观看高清| 国产一区二区调教| 成看片vvv222| 久久精品一二三| 国产精品一二| 超碰在线观看av| 麻豆传传媒久久久爱| 亚洲国产精品久久久久蝴蝶传媒| √资源天堂中文在线| 精品99在线视频| 日日夜夜综合网| 日本中文字幕一区二区| 中文字幕久久午夜不卡| 韩国在线视频一区| 三上悠亚国产精品一区二区三区| 欧美18一12sex性处hd| 中文日韩电影网站| 超碰97久久| 91jq激情在线观看| 日韩综合视频在线观看| 欧美www.| 国产一区美女在线| 97超碰人人干| 精品无码人妻一区二区三区| 亚洲黄色a级片| 日本网站免费在线观看| 国产乱人伦精品一区二区在线观看| 91在线视频播放| www.91popny.com| 在线观影网站| 俺去啦俺在线观看| blacked蜜桃精品一区| 男男激情在线| 99国产精品免费视频观看| 美女激情福利视频在线观看| 亚洲色图21p| 成人小说亚洲一区二区三区| 午夜久久久久久噜噜噜噜| 国产成人在线免费| 欧美剧在线免费观看网站| 精品999在线观看| 中文字幕日本三级| www.黄色小说.com| 久久影院免费观看| 中文字幕人妻色偷偷久久| 欧美激情一区二区三区高清视频| 99久久精品一区二区| aaa亚洲精品一二三区| 91成人国产综合久久精品| 91在线porny国产在线看| 久久精品亚洲精品国产欧美kt∨| 免费黄色成年网站| 欧洲国产精品| 福利在线播放| 久久久久久久av| 天天躁夜夜躁狠狠是什么心态| 日韩西西人体444www| 五月激情婷婷网| 国内精品伊人久久久久影院对白| 久久久人成影片一区二区三区在哪下载| 亚洲免费一在线| 国产三级三级三级精品8ⅰ区| 精品中文av资源站在线观看| japan乱配videos老少配| 亚洲国产精品成人天堂| 国产精品一区二区羞羞答答| 亚洲成av人乱码色午夜| 欧美日韩xxxx| 中文字幕在线观看不卡| 日韩免费黄色片| 爱爱爱免费视频在线观看| 在线免费国产| 美脚丝袜一区二区三区在线观看| 国产乱淫a∨片免费视频| 婷婷成人综合网| 日韩大片欧美大片| 国产一二三四区在线观看| 日韩欧美电影在线观看| 国产自产2019最新不卡| 精品美女在线观看视频在线观看| 色成人免费网站| 国产精品永久入口久久久| 亚洲三级免费电影| 日韩欧美一区二区视频在线播放| 国产精品高潮呻吟久久久| av中文资源在线| 成人激情黄色网| 麻豆中文字幕在线观看| 亚洲www在线| 国产情侣自拍av| 免费看男男www网站入口在线| 国产精品久久久久久久久| 亚洲色图官网| 日本阿v视频在线观看| 精品国产91久久久| 尤物在线视频观看| 久久国产精品视频| 18久久久久久| 免费观看国产精品| 91在线高清观看| 97中文字幕在线| 隔壁人妻偷人bd中字| 日本道免费精品一区二区三区| 亚洲男男gay视频| 国产男女猛烈无遮挡免费视频| 91九色老女人| www.天天射| 日本美女一区二区| 国产精品中文字幕日韩精品| 91亚洲精品久久久久久久久久久久| 91日韩在线| 鲁丝片一区二区三区| www.日本一区| 欧美最新大片在线看| 精品国产一区二区三区久久狼黑人| 国产精品乱码一区二区三区软件| 色综合久久九月婷婷色综合| 亚洲女人被黑人巨大进入al| 久久av偷拍| 亚洲最新合集| 国产女主播在线一区二区| 国产视频亚洲视频| 精品99在线视频| 操人视频在线观看| 丁香花电影在线观看完整版| 国产精品视频分类| 中文字幕人妻一区二区在线视频| 在线成人视屏| 国产精品一级在线| 香蕉国产在线视频| 麻豆自创视频在线观看| 日本中文在线| 99国产精品久久一区二区三区| 韩国av在线免费观看| 91小视频在线免费看| 日韩一区欧美小说| 亚洲区免费影片| 久久久久人妻一区精品色欧美| 成人免费区一区二区三区| 日韩不卡手机在线v区| 欧美精品电影在线| 一区二区三区区四区播放视频在线观看| 欲求不满的岳中文字幕| 91美女蜜桃在线| wwwcom羞羞网站| 亚洲国产高清av| 在线视频欧美日韩精品| 国产中文字幕在线播放| 亚洲欧美变态国产另类| 天海翼精品一区二区三区| 777午夜精品福利在线观看| 精品一卡二卡三卡四卡日本乱码| 一区二区欧美久久| 一区二区小说| 欧美凹凸一区二区三区视频| 国产剧情在线| 国产999精品在线观看| 国产一区毛片| 成人ssswww在线播放| 特级片在线观看| 99国产精品久久久久久| 中文字幕人成人乱码亚洲电影| 久久国产午夜精品理论片最新版本| 一呦二呦三呦国产精品| 日本福利片在线观看| 欧美日韩电影在线观看| 668精品在线视频| 不卡av一区二区| 欧美成人免费高清视频| 乱一区二区三区在线播放| 国产1区2区3区| eeuss性xxxxxx电影| 中文字幕一二三| 国产伦精品一区二区三区免.费| 欧美国产美女| 中文字幕日韩欧美精品在线观看| 日本中文字幕在线观看| 欧美色图亚洲激情| 日韩美女视频19| 制服丝袜中文字幕亚洲| 欧美一级一级性生活免费录像| 亚州av乱码久久精品蜜桃| 中文天堂av| 99re免费视频精品全部| 小早川怜子痴女在线精品视频| 激情在线视频| 97蜜桃久久| 亚洲毛茸茸少妇高潮呻吟| 国产精品青草久久久久福利99| 日韩中文字幕久久| 久久久免费电影| 欧美日韩不卡| 国内精品免费午夜毛片| 五月婷婷在线观看| 无人日本免费视频| 无码人妻一区二区三区在线| 亚洲日本中文字幕免费在线不卡| 性欧美xxxx视频在线观看| 在线观看中文字幕的网站| 亚洲成a人片77777精品| 日日摸夜夜爽人人添| 亚洲图片小说网| 国产精品边吃奶边做爽| 婷婷五月在线视频| 666欧美在线视频| 亚洲福利一区二区| 另类ts人妖一区二区三区| 97caopron在线视频| 中文字幕一区二区久久人妻| 在线看片一区| 亚洲成人高清在线| 宅男噜噜噜66国产日韩在线观看| 91.com视频| 日韩欧美国产精品综合嫩v| 影音先锋成人资源网站| 精品一区二区三区免费爱| 蜜臀久久精品久久久用户群体| 亚洲一级二级在线| 欧美三级免费看| 成人午夜天堂| 免费毛片一区二区三区久久久| 成人免费va视频| 在线免费观看a视频| 日韩国产精品一区二区| 成人网男人的天堂| 在线综合视频网站| 萌白酱国产一区二区| 色哟哟亚洲精品一区二区| 色多多国产成人永久免费网站| 777午夜精品视频在线播放| 亚洲成人亚洲激情| 国产成人鲁色资源国产91色综| 日本a级在线| 日韩专区一区二区| 国产精品拍天天在线| 日韩激情一区二区三区| 欧美精品在线视频| 国产精品久久午夜夜伦鲁鲁|