!DOCTYPE?html
為龍陵等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及龍陵網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、龍陵網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
html
head
meta?charset="UTF-8"
titleInsert?title?here/title
/head
style
.jdtbox?{
padding:?10px?0;
}
.jdt_dbg?{
background:?#fce5e5;
width:?196px;
height:?18px;
border-radius:?10px;
-webkit-border-radius:?10px;
overflow:?hidden;
border-top:?1px?solid?#f9d1d1;
}
.jdt_mbg?{
background:?#f12938;
height:?18px;
width:?75%;
height:?20px;
}
/style
script?type="text/javascript"
$(function()?{
$(".jdt_mbg").animate({
width?:?"50%",
},?1000);
});
/script
body
form?action=""?method="post"?enctype="multipart/form-data"?name="upload_form"
label選擇圖片文件/label?
input?name="imgFile"?type="file"?multiple="multiple"?accept="image/gif,?image/jpeg"?/?
input?name="upload"?type="submit"?value="上傳"?/
/form
div?class="jdtbox"
div?class="jdt_dbg"
div?class="jdt_mbg"?style="width:?${investDetail.percent*100"/div
/div
/div
/body
/html
一般是網(wǎng)絡(luò)的原因,建議更換一下WiFi環(huán)境上傳試試,另外如果還不行,建議講軟件卸載重新安裝,別人沒有這個(gè)問題啊
不需要后端的,前端自己判斷,代碼如下:
function uploadFile(){
// 獲取上傳文件,放到 formData對象里面
var pic = $("#myhead").get(0).files[0];
var formData = new FormData();
formData.append("file" , pic);
$.ajax({
type: "POST",
url: "upload",
data: formData ,//這里上傳的數(shù)據(jù)使用了formData 對象
processData : false,
//必須false才會自動加上正確的Content-Type
contentType : false ,
//這里我們先拿到j(luò)Query產(chǎn)生的 XMLHttpRequest對象,為其增加 progress 事件綁定,然后再返回交給ajax使用
xhr: function(){
var xhr = $.ajaxSettings.xhr();
if(onprogress xhr.upload) {
xhr.upload.addEventListener("progress" , onprogress, false);
return xhr;
}
}
});
后端的責(zé)任。
前端上傳文件實(shí)時(shí)顯示進(jìn)度條和上傳速度的工作原理就是后端的責(zé)任,在Django中實(shí)現(xiàn)需要重載上傳文件的函數(shù),在上傳時(shí)文件是被分成數(shù)個(gè)MB的chunk處理的,每次都會調(diào)用這個(gè)上傳函數(shù)。也就是說,每處理一個(gè)chunk就更新uploaded size,然后瀏覽器端通過AJAX獲取這個(gè)值和文件大小
最后用JavaScript渲染到頁面上。
前端只能說會用框架和插件干活。前段時(shí)間用的百度的webuploader,demo就帶進(jìn)度條的。js代碼不多可以看一下,猜測是監(jiān)聽事件。上傳是前端和通信協(xié)議做的事,后端是寫入。在比較傳統(tǒng)流和和spring自帶的transferto的耗時(shí)統(tǒng)稱上傳時(shí)間是不對的,應(yīng)為寫入時(shí)間。
項(xiàng)目框架采用spring+hibernate+springMVC如果上傳文件不想使用flash那么你可以采用html5;截圖前段模塊是bootstarp框架;不廢話直接來代碼;spring-mvc配置文件。
nginx話lua可以拿到鏈接的套接口,讀取套接口就可以知道當(dāng)前上傳了多少了??梢钥聪耾penresty的lualib/resty/upload.lua。
可以把進(jìn)度信息放在cookie里,下次打開瀏覽器,到上傳頁面以后,從cookie中上次的讀取進(jìn)度信息,上傳時(shí),讀取上傳文件到上次進(jìn)度位置,繼續(xù)上傳