jqueryはドラッグファイルのアップロード進捗バー機能を実現
2729 ワード
ファイルのドラッグによってファイルのアップロードを実現し、主にHTML 5のondropイベント、アップロードコンテンツチャネルFormData転送を使用します.
進捗バーcss:
この内容は大体のファイルアップロード技術の方向にすぎず、自分のプロジェクトによって改善することができます!
まとめ
以上述べたのは、編集者が紹介したjqueryがファイルをドラッグしてアップロードする進捗バー機能を実現したことです.
//
0%//
js:
var dz = $('#main_content_center');
dz.ondragover = function(ev) {
//
ev.preventDefault();
}
dz.ondrop = function(ev) {
ev.preventDefault();
var files = ev.dataTransfer.files;
var len = files.length,i = 0;
while (i < len) {
var filesName=files[i].name;
var extStart=filesName.lastIndexOf(".");
var ext=filesName.substring(extStart,filesName.length).toUpperCase();
if(ext!=".JPG"&&ext!=".PNG"&&ext!=".XML"){ //
TS.errorAlert(" .jpg、.png、.xml !");
return false;
}else{
test(files[i]);
}
i++;
}
$(".parent-dlg").show();
}
function test(a){
var formData = new FormData();
formData.append("name", a.name);
formData.append("size", a.size);
formData.append("data", a);
$.ajax({
url:'',
type:'post',
data:formData,
cache: false,
processData: false,
contentType: false,
xhr: function(){
var xhr = $.ajaxSettings.xhr();
if(onprogress && xhr.upload) {
xhr.upload.addEventListener("progress" , onprogress, false);
return xhr;
}
}
})
};
function onprogress(evt){
var loaded = evt.loaded; //
var tot = evt.total; //
var per = Math.floor(100*loaded/tot); //
$(".progress-label").html( per +"%" );
$(".son").css("width" , per +"%");
if(per>=100){
$(".parent-dlg").hide();
}
}
進捗バーcss:
.parent-dlg{position: absolute;width:400px; height:20px; border:1px solid #aaaaaa;border-radius:3px;top:30%;left:50%;z-index:9999;margin-left:-200px;display:none;}
.parent-dlg .progress-label{position: absolute;left: 50%;top: 4px;font-weight: bold;text-shadow: 1px 1px 0 #fff;}
.parent-dlg .son {width:0; height:100%; background-color:#cccccc; text-align:center; line-height:20px; font-size:16px; font-weight:bold;}
この内容は大体のファイルアップロード技術の方向にすぎず、自分のプロジェクトによって改善することができます!
まとめ
以上述べたのは、編集者が紹介したjqueryがファイルをドラッグしてアップロードする進捗バー機能を実現したことです.