<form id="form" action="url" method="post" enctype= "multipart/form-data">
<!--文件上傳部分-->
<div id="filesUpLoad" class="">
<input type="file" id="files" onchange="changes()" name="fileName" accept=".zip"/>
</div>
<div>
<input type="button" id="submits" value="點(diǎn)擊上傳" disabled="disabled" onclick="subForm()"/>
</div>
<!--顯示文件信息和進(jìn)度條部分-->
<div id="console" class="">
<div class="hr" id="hr"></div>
<div class="progress" id="progressNumber"></div>
<div class="" id="fileName"></div>
<div class="" id="fileSize"></div>
<div class="" id="fileType"></div>
<div id="close">
<button onclick="closePage()">關(guān)閉</button>
</div>
</div>
</form>
<script type="text/javascript">
//選中文件或是文件發(fā)生改變時(shí)觸發(fā)
function changes(){
document.getElementById("console").setAttribute("hidden","hidden");
document.getElementById("progressNumber").setAttribute("hidden","hidden");
document.getElementById("submits").setAttribute("disabled","disabled");
//獲取文件對(duì)象
var file = document.getElementById("files").files[0];
//獲取文件大小(MB)
var fsz = (Math.round(file.size*100/(1024*1024))/100).toString();
//獲取文件全名.類型
var fileName = file.name;
//獲取文件類型
var ftp = fileName.substr(fileName.lastIndexOf('.')+1,fileName.length);
/判斷文件類型是否匹配
if(ftp=='js'){
//判斷文件大小是否匹配
if(fsz<5){
document.getElementById("submits").removeAttribute("disabled");
if(file){
var fileSize = 0;
if(file.size>1024*1024){
fileSize=fsz+"MB";
}else{
fileSize=(Math.round(file.size*100)/100).toString()+"KB";
}
document.getElementById("console").removeAttribute("hidden");
document.getElementById("hr").innerHTML ="<hr/>";
document.getElementById("fileName").innerHTML="文件名稱:"+
fileName.substr(0,fileName.lastIndexOf('.'));
document.getElementById("fileSize").innerHTML="文件大?。?+fileSize;
document.getELementById("fileType").innerHTML="文件類型:"+ftp;
}
}else{
alert("文件大小超過(guò)5MB,請(qǐng)選擇小于5MB的相關(guān)文件!");
}
}else{
alert("文件類型不匹配,請(qǐng)選擇相匹配的文件類型!");
}
}
//上傳
function subForm(){
//獲取項(xiàng)目全部路徑
var s = window.location.href;
//按自己的需求截取
var ul = s.substr(0,s.lastIndexOf('/'));
//根據(jù)實(shí)際情況寫
var url = ul+"/upFils/1";
var fd = new FormData();
fd.append("fileName",document.getElementById("files").file[0]);
var xhr = new XMLHttpRequest();
xhr.upload.addEventListener("progress",uploadProgress,false);
xhr.addEventListener("load",uploadComplete,false);
xhr.addEventListener("error",uploadFailed,false);
xhr.addEventListener("abort",uploadCanceled,false);
xhr.open("post",url);
xhr.send(fd);
}
//上傳進(jìn)度
function uploadProgress(evt){
if(evt.lengthComputable){
var percentComplete = Math.round(evt.loaded*100/evt.total);
document.getElementById("progressNumber").removeAttribute("hidden");
document.getElementById("progressNumber").innerHTML = percentComplete.toString()+"%";
}else{
document.getElementById("progressNumber").innerHTML = "無(wú)法計(jì)算";
}
}
//服務(wù)器端返回響應(yīng)時(shí)觸發(fā)event事件
function uploadComplete(evt){
var s = window.location.href;
var ur = s.substr(0,s.lastIndexOf('.'));
var message = evt.target.responseText;
var json = JSON.parse(message);
//根據(jù)實(shí)際情況判斷及增加ajax請(qǐng)求
if(json.stuats==200){
$.ajax({
url:ur,
type:"post",
data:{path:json.path},
success:function(data){
var dt = eval(data);
if(dt.stuats==200){
document.getElementById("submits").setAttribute("disabled","disabled");
document.getElementById("close").innerHTML = "<input type='button' onclick='closePage()'/>";
alert("文件上傳成功!");
}else{
alert("文件上傳失?。?);
}
},
error:function(){
alert("上傳過(guò)程出現(xiàn)未知錯(cuò)誤!");
}
});
}else{
alert("文件未能正確保存到服務(wù)器!");
}
}
//文件上傳失敗觸發(fā)
function uploadFailed(evt){
alert("試圖上傳文件時(shí)出錯(cuò)!");
}
//上傳文件取消觸發(fā)
function uploadCanceled(evt){
alert("文件上傳中斷!");
}
//關(guān)閉本頁(yè)面
function closePage(){
window.close();
}
</script>
Java Web帶進(jìn)度上傳文件
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 本文包括:1、文件上傳概述2、利用 Commons-fileupload 組件實(shí)現(xiàn)文件上傳3、核心API——Dis...
- 根據(jù)之前所說(shuō),學(xué)習(xí)一款MVC框架,必須要知道文件怎么上傳的,那么今天就來(lái)學(xué)習(xí)一下,SpringMVC是如何進(jìn)行文件...
- 什么是文件上傳 為什么使用文件上傳 文件上傳原理分析 上傳文件注意事項(xiàng) 1,請(qǐng)求方式必須是post. 2,需要使用...
- 對(duì)于文件上傳,瀏覽器在上傳的過(guò)程中是將文件以流的形式上傳到服務(wù)端的。如果直接使用Servlet獲取上傳文件的輸入流...
- 叔本華說(shuō):人受欲望支配,欲望不滿足就痛苦,滿足了就無(wú)聊,人生如同鐘擺在痛苦和無(wú)聊之間搖擺。他的結(jié)論是:根本就不存在...