CSS
.process-bar-wrapper{
background-color: #FFF;
width: 360px;
height: 34px;
position: relative;
padding: 0;
margin: 0;
overflow: hidden;
border-radius: 2px;
}
.process-bar-wrapper .title{
background-color: #FFF;
width: 360px;
height: 20px;
line-height: 20px;
position: relative;
padding: 0;
margin: 0;
border-radius: 5px;
font-size: 12px;
text-align: center;
padding: 0;
margin:0;
border-radius: 2px;
}
.process-bar-wrapper .bar{
background-color: #FF8828;
height: 14px;
display: inline-block;
padding: 0;
margin: 0;
position:absolute;
top: 20px;
left: 0;
opacity: 1;
}
js 源码
/*
* 上传文件
*/
function ajaxUpload() {
var file_obj = document.getElementById('file_upload').files[0];
var _token = $('meta[name="csrf-token"]').attr('content');
var url = '/upload/server?_token='+_token;
var data = new FormData();
data.append('upfile', file_obj);
$.ajax({
type:"post",
async:true, //这里要设置异步上传,才能成功调用myXhr.upload.addEventListener('progress',function(e){}),progress的回掉函数
Accept:'text/html;charset=UTF-8',
data:data,
contentType:"multipart/form-data",
url: url,
processData: false, // 告诉jQuery不要去处理发送的数据
contentType: false, // 告诉jQuery不要去设置Content-Type请求头
beforeSend: function (XMLHttpRequest) {
var _itemEle = '<div class="process-bar-wrapper">'+
'<p class="title" id="processTitle" >上传中,请稍等...</p>'+
'<p class="bar" id="processBar"> </p>'+
'</div>';
layer.open({
type: 1
,title: false
,closeBtn:0
,resize:false
,shadeClose: false //点击遮罩区域是否关闭页面
,shade: .50
,content:_itemEle
})
},
xhr:function(){
myXhr = $.ajaxSettings.xhr();
if(myXhr.upload){ // check if upload property exists
myXhr.upload.addEventListener('progress',function(e){
var loaded = e.loaded; //已经上传大小情况
var total = e.total; //附件总大小
var percent = Math.floor(100*loaded/total)+"%"; //已经上传的百分比
$("#processBar").css("width",percent);
$("#processTitle").text("上传中,已完成("+percent+")");
}, false); // for handling the progress of the upload
}
return myXhr;
},
success:function (res) {
layer.closeAll();
$('#file_upload').val('');
if(res && res.state == '200''){
layer.msg('上传成功!');
}else{
layer.msg('上传失败!'+res.state);
}
},
error: function () {
layer.closeAll();
$('#file_upload').val('');
layer.msg('上传失败!');
},
})
}