Maison php教程 PHP开发 Jquery et BigFileUpload implémentent le téléchargement de fichiers volumineux et l'affichage de la barre de progression

Jquery et BigFileUpload implémentent le téléchargement de fichiers volumineux et l'affichage de la barre de progression

Dec 29, 2016 pm 04:53 PM

Méthode d'implémentation : utilisez le composant bigfileupload de Gaoshanlaike. Utilisez la méthode de Gaoshanlaike pour afficher une fenêtre modale, puis continuez à actualiser pour obtenir la progression. J'ai toujours l'impression que l'expérience n'est pas bonne, alors j'ai pensé à utiliser jquery pour y parvenir. affichage de la progression sans actualisation. Parce qu'après la soumission de la page, il ne peut pas être autorisé à actualiser la page, mais les informations de progression renvoyées par progress.aspx doivent être obtenues en continu via ajax, donc la soumission ajaxform de jquery.form est utilisée. Une fois l'ajaxform soumis, si des événements post-soumission sont exécutés, tels que l'insertion d'enregistrements dans la base de données, il est toujours en cours de débogage.

1. Utilisez la barre de progression, le formulaire, MultFile et les composants associés de jquery

<script src="../../common/js/jquery-1.2.6.pack.js" type="text/javascript"></script> 
<script src="../../common/jqControl/packed/ui.core.packed.js" type="text/javascript"></script> 
<!--FORM--> 
<script src="../../common/jqControl/ajax/jquery.form.js" type="text/javascript"></script> 
<!--上传文件--> 
<script src="../../common/jqControl/upLoad/jquery.MultiFile.pack.js" type="text/javascript"></script> 
<!--进度条--> 
<script src="../../common/jqControl/packed/ui.progressbar.packed.js" type="text/javascript"></script> 
<!--对话框--> 
<!--我的JS --> 
<link href="../../common/Css/jquery-ui-themeroller.css" rel="stylesheet" type="text/css" /> 
<script src="../gadget/JS/uploadfile.js" type="text/javascript">
Copier après la connexion

Jquery et BigFileUpload implémentent le téléchargement de fichiers volumineux et laffichage de la barre de progression

2. Le code uploadfile.js est le suivant :

$(function() 
{ 
var info = &#39;<div style="display:none" id="uploadinfo">&#39;; 
info += &#39;<p>正在上传: <span id="uploadfilename"></span></p>&#39;; 
info += &#39;<p>上传速度: <span id="uploadrate"></span> </p>&#39;; 
info += &#39;<p>状态: <span id="uploadtitle"></span></p>&#39;; 
info += &#39;<p>预计剩余时间: <span id="uploadlefttime"></span></p>&#39;; 
info += &#39;<p>上传文件大小: <span id="uploadtotal"></span></p>&#39;; 
info += &#39;<p>已上传大小: <span id="uploadcurrent"></span></p>&#39;; 
info += &#39;<p><div id="uploadprogressbar"></div></p>&#39;; 
info += &#39;</div><div id="dialogsucc" > &#39;; 
$("body").append(info); 
//进度条 
$("#uploadprogressbar").progressbar(); 
//上传 
$(&#39;#fileupload&#39;).MultiFile(); 
$(&#39;#btshow&#39;).click(function() 
{ 
alert($("body").html()); 
}); 
//提交 
$(&#39;#btnsubmit&#39;).click(function() 
{ 
$("#uploadForm").ajaxSubmit( 
{ 
dataType: &#39;text&#39;, 
beforeSubmit: function(a,f,o) 
{ 
startProgress(); 
}, 
async:false, 
success: function(data) 
{ 
//$("#dialogsucc").text(data); 
//stopProgress(); 
if(data.succ==1) 
{ 
/* $("#dialogsucc").show(); 
$("#dialogsucc").dialog( 
{ 
modal: true, 
overlay: 
{ 
opacity: 0.5, 
background: "black" 
} 
}); */
} 
}, 
error:function(err) 
{ 
alert(err); 
} 
}); 
}); 
}); 
function getProgress(){ 
$.ajax({ 
type: "post", 
dataType:"json", 
url: "uploadProgress.aspx", 
data: "UploadID=" + $("#UploadID").val(), 
success: function(data){ 
$("#uploadprogressbar").progressbar("progress", data.percent); 
$("#uploadfilename").html(data.filename); 
$("#uploadrate").html(data.rate); 
$("#uploadtitle").html(data.info); 
$("#uploadlefttime").html(data.lefttime); 
$("#uploadtotal").html(data.total); 
$("#uploadcurrent").html(data.current); 
if(data.succ==-1){ 
alert(data.errmsg); 
} 
if (data.succ==0){ 
setTimeout("getProgress()", 1000); 
} 
if (data.succ==1){ 
return; 
} 
}, 
error:function(msg) 
{ 
alert(msg); 
} 
}); 
} 
function startProgress(){ 
$("#uploadinfo").show(); 
setTimeout("getProgress()", 500); 
} 
function stopProgress() 
{ 
$("#uploadinfo").hide(); 
}
Copier après la connexion

3 : Le code progress.aspx est le suivant :

protected void Page_Load(object sender, EventArgs e) 
{ 
try
{ 
string s = "{"; 
UploadContext upload = UploadContextFactory.GetUploadContext(Request["UploadID"]); 
//初始化 
if (upload.Status == uploadStatus.Initializing) 
{ 
s += responeJSON(upload, "0", ""); 
} 
if (upload.Status == uploadStatus.Uploading) 
{ 
s += responeJSON(upload, "0", ""); 
} 
if (upload.Status == uploadStatus.Complete) 
{ 
s += responeJSON(upload, "1", ""); 
} 
if (upload.Status == uploadStatus.HasError) 
{ 
s += responeJSON(upload, "-1", ""); 
} 
s += "}"; 
Response.Write(s); 
} 
catch (Exception err) 
{ 
//throw err; 
Response.Write("{&#39;info&#39;:&#39;" + err.Message.Replace("&#39;", "") + "&#39;,&#39;succ&#39;:-1}"); 
} 
} 
private string responeJSON(UploadContext upload, string succ,string errmsg) 
{ 
string s = ""; 
s += "&#39;info&#39;:&#39;" + upload.FormatStatus + "&#39;" ; 
s += ",&#39;percent&#39;:&#39;" + Convert.ToInt32((upload.Readedlength * 100.0 / upload.TotalLength)).ToString() + "&#39;"; 
s += ",&#39;current&#39;:&#39;" + (upload.Readedlength/1024).ToString() + "KB&#39;"; 
s += ",&#39;total&#39;:&#39;" + (upload.TotalLength/1024).ToString() + "KB&#39;"; 
s += ",&#39;rate&#39;:&#39;" + upload.FormatRatio + "&#39;"; 
s += ",&#39;filename&#39;:&#39;" + upload.CurrentFile + "&#39;"; 
s += ",&#39;cancel_upload&#39;:" + 0 ; 
s += ",&#39;lefttime&#39;:&#39;" + upload.LeftTime + "&#39;"; 
s += ",&#39;succ&#39;:" + succ; 
s += ",&#39;errmsg&#39;:&#39;" + errmsg +"&#39;"; 
return s; 
}
Copier après la connexion

4. Une fois l'ajaxForm exécuté, il peut s'exécuter normalement. Comment puis-je effectuer d'autres opérations après avoir téléchargé le fichier ? Je publierai après l'avoir recherché

Ce qui précède est Jquery et BigFileUpload introduits par l'éditeur pour implémenter le téléchargement de fichiers volumineux et l'affichage de la barre de progression. J'espère que cela vous sera utile. Si vous avez des questions, veuillez partir. envoyez-moi un message et l'éditeur vous répondra à temps. Je voudrais également vous remercier tous pour votre soutien au site Web PHP chinois !

Pour plus d'articles sur Jquery et BigFileUpload implémentant le téléchargement de fichiers volumineux et l'affichage de la barre de progression, veuillez faire attention au site Web PHP chinois !


Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Vous avez un jeu croisé?
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)