Recommandé: comment obtenir ASP pour obtenir la première adresse d'image dans le code Ce qui suit est le contenu référencé: «Modifiez à nouveau le modèle» le code à détecter 'http://www.knowsky.com/asp.asp'leixing html ou ubb'nopic que le code n'a pas
| Ce qui suit est le contenu cité: Exemple.asp <% @ Language = codepage VBScript = 65001%> <! - # Inclure file = sundyupload.asp -> <% «Le codage du document dans cet exemple est UTF-8. S'il s'agit d'un système avec un autre encodage, veuillez convertir le codage en codage correspondant, sinon les données obtenues sous la forme peuvent être brouillées. Dim objupload, opt Dim xmlpath Dim fileformname, objfile, compteur opt = request.QueryString (OPT) Si opt = télécharger alors xmlpath = server.mappath (request.querystring (xmlpath)) 'Convertir le chemin virtuel en chemin réel Définir objupload = new Sundyupload 'Créer un objet Télécharger objupload.uploadInit xmlpath, utf-8 compteur = 1 Réponse.write (formulaire normal: & objupload.form (normalform) & <br> <br>) 'Obtenez des données de formulaire Pour chaque fichierformname dans objupload.objfile Set objfile = objupload.objfile (fileFormName) fileSize = objfile.filesize strtemp = objfile.filepath Réponse.WRITE STRTEMP FileName = Mid (StrTemp, Instrrev (strTEmp, /) 1) Si la taille des fichiers> 0 alors Response.Write (Taille du fichier: & Filesize & <br>) Réponse.write (nom de fichier: & objfile.filepath & <br>) 'Response.Write (Description du fichier: & objupload.form (FileDesc & Counter) & <br> <br>) objfile.saveas server.mappath (.) & / upload / & filename Response.Write Enregistrer sur: & server.mappath (.) & / Upload / & filename & <br> <br> Terminer si compteur = compteur 1 Suivant Terminer si 'Spécifiez un chemin virtuel pour télécharger le fichier de données de barre de progression (fichier XML) 'Il vaut mieux être aléatoire, car plusieurs personnes peuvent télécharger en même temps, nécessitant des données de progrès différentes 'Ce chemin doit être transmis dans le composant de téléchargement lors de la soumission pour modifier les données de progression pendant le processus de téléchargement 'Le client utilise JavaScript pour lire ce fichier XML et affiche des progrès xmlpath = upload / & timer & .xml %> <html> <adal> <meta http-equiv = contenu contenu contenu = text / html; charse = utf-8 /> <Title> Sundy Upload Progress Bar Exemple </Title> <Script Language = JavaScript> fonction chkfrm () { var objfrm = document.frmupload; if (objfrm.file1.value == && objfrm.file2.value ==) { alerte (veuillez sélectionner un fichier); objfrm.file1.focus (); retourne false; } objfrm.Action = example.asp? Opt = upload & xmlpath = <% = xmlpath%>; startProgress ('<% = xmlpath%>'); // démarrer la barre de progression Retour Vrai; } </cript> </ head> <body> <form name = frmupload method = post-action = example.asp enctype = multipart / form-data onSubmit = return chkfrm ()> Formulaire normal: <br> <Type d'entrée = nom de texte = taille normale = 40> <br> <br> Fichier 1: <br> <input type = file name = file1 size = 40> </br> <entrée type = nom de texte = FileDesc1 size = 30> <br> <br> Fichier 2: <br> <input type = file name = file2 size = 40> </br> <entrée type = nom de texte = FileDesc2 size = 30> <br> Fichier 3: <br> <input type = file name = file3 size = 40> </br> Fichier 4: <br> <input type = file name = file4 size = 40> </br> Fichier 5: <br> <input type = file name = file5 size = 40> </br> <Type de saisie = soumettre name = btnsubmit value = soumed /> </ form> </docy> </html> Sundyupload.asp <meta http-equiv = contenu contenu contenu = text / html; charse = utf-8 /> <% Dim sundyupload_sourcedata Classe Sundyupload Dim objform, objfile, version, objprogress DIM XMLPATH, charsencoding Formulaire de fonction publique (STRForm) strform = lCase (strform) Si pas objform.exists (strform) alors Forme = Autre Form = objform (strform) Terminer si Fonction finale Fichier de fonction publique (strfile) strfile = lcase (strfile) Si ce n'est pas objfile.exists (strfile) alors Set file = new FileInfo Autre Set file = objfile (strfile) Terminer si Fonction finale Public Sub uploadInit (ProgressXmlPath, Charset) Dim demandesdata, sstart, crlf, sinfo, iinfostart, iinfoend, tStream, istart, thefile Dim ifilesize, sfilepath, sfiletype, sformvalue, sfilename Dim ifindstart, ifIndend Dim iformstart, iformend, sformname Version = téléchargement de largeur Bar de progression Version 1.0 Définir objform = server.createObject (scripting.dictionary) Définir ObjFile = Server.CreateObject (Scripting.Dictionary) Si request.totalbytes <1, alors quittez le sous Set tStream = server.createObject (adodb.stream) Définir Sundyupload_SourceData = Server.CreateObject (ADODB.stream) Sundyupload_sourcedata.type = 1 Sundyupload_sourcedata.mode = 3 Sundyupload_sourcedata.open Totalbytes Total DIM Talent de bunkread Dim DataPart, Partsize Objprogress faible TotalBytes = request.totalbytes taille totale ChunkReadSize = 64 * 1024 'Taille de bloc 64K BytesRead = 0 xmlpath = progressxmlpath Charsencoding = charset Si charsencoding = alors CharSetEncoding = UTF-8 Terminer si Définir Objprogress = Nouveau progrès objprogress.progressInit (xmlpath) objprogress.updateprogress totalbytes, 0 'LECTURE LOOP Faire tandis que BytesRead <TotalBytes 'Lire bloquée Partsize = ChunkReadSize Si Partsize BytesRead> TotalBytes alors Partsize = TotalBytes - BytesRead Datapart = request.binaryread (partiSize) BytesRead = bytesRead Partsize SUNDYUPLOAD_SOURCEDATA.WRITE DATAPART objprogress.updateprogress totalbytes, bytesread Boucle 'Sundyupload_sourcedata.write request.binaryread (request.totalbytes) Sundyupload_sourcedata.position = 0 RequestData = sundyupload_sourcedata.read iformstart = 1 iforMend = Lenb (requestData) Crlf = chrb (13) & chrb (10) sstart = midb (requestData, 1, instrb (iformstart, requestData, crlf) -1) istart = Lenb (sstart) iformstart = iformstart istart 1 Tandis que (iformstart 10) <iformend iinfoend = instrb (iformstart, requestData, crlf & crlf) 3 TSTREAM.TYPE = 1 tStream.Mode = 3 ttrever.open Sundyupload_sourcedata.position = iformstart Sundyupload_sourcedata.copyto tStream, iinfoend -iformstart tStream.Position = 0 TSTREAM.TYPE = 2 tStream.Charset = charSetEncoding sinfo = tStream.readText ttrever.close 'Obtenez le nom du projet de formulaire iformstart = instrb (iinfoend, requestData, sstart) ifIndStart = instr (22, sinfo, nom =, 1) 6 ifIndend = instr (ifIndStart, Sinfo ,, 1) sformname = lCase (mid (sinfo, ifindstart, ifIndend-IfIndStart)) 'Si c'est un fichier Si instr (45, sinfo, filename =, 1)> 0 alors Set theFile = new FileInfo 'Obtenez le nom du fichier ifindstart = instr (ifIndend, sinfo, filename =, 1) 10 ifIndend = instr (ifIndStart, Sinfo ,, 1) sFileName = mid (sinfo, ifindstart, ifIndend-ifindstart) thefile.filename = getFileName (sFileName) thefile.filepath = getFilepath (sfilename) 'Obtenez le type de fichier ifIndStart = instr (ifIndend, Sinfo, contenu-type :, 1) 14 ifIndend = instr (ifIndStart, Sinfo, vbcr) thefile.fileType = mid (Sinfo, ifindstart, ifIndend-ifindstart) thefile.fileStart = iinfoend thefile.filesize = iformstart -iinfoend -3 thefile.formname = sformname Si ce n'est pas objfile.exists (sformname) alors objfile.add sformname, thefile Terminer si Autre 'Si c'est un projet de formulaire TSTREAM.TYPE = 1 tStream.Mode = 3 ttrever.open Sundyupload_sourcedata.position = iinfoend Sundyupload_sourcedata.copyto tStream, iformstart-iinfoend-3 tStream.Position = 0 TSTREAM.TYPE = 2 tStream.Charset = charSetEncoding sformvalue = tStream.readText ttrever.close Si objform.exists (sformname) alors objform (sformname) = objform (sformname) &, & sformvalue Autre objform.add sformname, sformvalue Terminer si Terminer si iformstart = iformstart istart 1 Se promener RequestData = Définir TSTREAM = Rien Sub-Sub Private Sub class_inialize Sub-Sub Sous-classe privée_terminée Si demande.totalbytes> 0 alors objform.removeall objfile.removeall Définir objform = rien Définir objfile = rien Sundyupload_sourcedata.close Définir Sundyupload_SourceData = Rien Terminer si Définir objprogress = rien SET OBJFSO = Server.CreateObject (Scripting.FileSystemObject) Si objfso.fileexists (xmlpath) objfso.deletefile (xmlpath) Terminer si Définir objfso = rien Sub-Sub Fonction privée GetFilepath (FullPath) Si fullpath <> alors GetFilePath = Left (FullPath, Instrev (FullPath,)) Autre GetFilepath = Terminer si Fonction finale Fonction privée getFileName (fullpath) Si fullpath <> alors GetFileName = mid (fullpath, instrrev (fullpath, /) 1) Autre GetFileName = Terminer si Fonction finale Classe finale Classe FileInfo Dim FormName, nom de fichier, filepath, size filets, gyming, filestart Private Sub class_inialize Nom de fichier = Filepath = FileSize = 0 Filestart = 0 FormName = FileType = Sub-Sub Fonction publique Saveas (Fullpath) Dim dr, errorchar, i SAVEAS = VRAI 'Réponse.Write Fullpath & ............... <br> 'Filename = ss.txt Si TRIM (FullPath) = ou FileStart = 0 ou FileName = ou Right (FullPath, 1) = / puis Fonction de sortie 'Réponse.Write 2 ............ <br> Set dr = createObject (adodb.stream) Dr.Mode = 3 Dr.Type = 1 docteur Sundyupload_sourcedata.position = filestart Sundyupload_sourcedata.copyto dr, size filets Dr.SAVETOFILE FULLPATH, 2 Dr.Close Définir DR = rien SAVEAS = FAUX Fonction finale Classe finale Progrès de la classe Faible objdom, xmlpath Dim Startime Private Sub class_inialize Sub-Sub Public Sub ProgressInit (XMLPathTMP) Dim objroot, objchild DIM OBJPI xmlpath = xmlpathtmp Définir objdom = server.createObject (Microsoft.xmldom) Set Objroot = objdom.CreateElement (Progress) Objdom.ApendChild Objroot Set Objchild = Objdom.CreateElement (TotalBytes) objchild.text = 0 Objroot.ApendChild Objchild Set Objchild = objdom.CreateElement (uploadBytes) objchild.text = 0 Objroot.ApendChild Objchild Set Objchild = objdom.CreateElement (UploadPercent) objchild.text = 0% Objroot.ApendChild Objchild Set objchild = objdom.createelement (uploadspeed) objchild.text = 0 Objroot.ApendChild Objchild Set Objchild = Objdom.CreateElement (TotalTime) objchild.text = 00:00:00 Objroot.ApendChild Objchild Set Objchild = Objdom.CreateElement (Leftime) objchild.text = 00:00:00 Objroot.ApendChild Objchild Définir objpi = objdom.CreateProcessingInstruction (xml, version = '1.0' Encoding = 'UTF-8') objdom.insertbefore objpi, objdom.childnodes (0) objdom.save xmlpath Définir objpi = rien Définir objchild = rien Définir objroot = rien Définir objdom = rien Sub-Sub Sub UpdatedProgress (TBYTES, RBYTES) Dim ememe, CurrentTime, Speed, TotalTime, Leftime, pourcentage Si rbytes = 0 alors starttime = minuterie Définir objdom = server.createObject (Microsoft.xmldom) objdom.load (xmlpath) objdom.SelectSingLenode (// TotalBytes) .Text = TBYTES objdom.save (xmlpath) Autre vitesse = 0,0001 CurrentTime = temporisateur etime = currenttime - starttime Si ememe> 0 alors speed = rbytes / eme TotalTime = Tbytes / Speed LeftTime = (TBYTES - RBYTES) / Speed pour cent = rond (rbytes * 100 / tbytes) 'Objdom.SelectSingLenode (// uploadBytes) .Text = rbytes 'Objdom.SelectSingLenode (// uploadSpeed) .Text = Speed 'Objdom.SelectSingLenode (// TotalTime) .Text = TotalTime 'Objdom.SelectSingLenode (// Leftime) .Text = LeftTime objdom.SelectSingLenode (// uploadBytes) .Text = formatFileSize (rbytes) & / & FormatFileSize (tbytes) objdom.SelectSingLenode (// Téléchargement) .Text =% objdom.SelectSingLenode (// uploadspeed) .text = formatFileSize (Speed) & / Sec objdom.SelectSingLenode (// TotalTime) .Text = sectoTime (TotalTime) objdom.SelectSingLenode (// Leftime) .Text = sectoTime (Leftime) objdom.save (xmlpath) Terminer si Sub-Sub SECTOTIME DE FONCTION PRIVÉE (SEC) Dim h: h = 0 Dim m: m = 0 Dim S: S = 0 H = Round (sec / 3600) m = rond ((sec mod 3600) / 60) S = Round (SEC MOD 60) Si Len (h) = 1 alors h = 0 & h Si len (m) = 1 alors m = 0 & m Si len (s) = 1 alors s = 0 & s Sectotime = (h &: & m &: & s) Fonction finale Fonction privée formatfilesize (fsize) Dim Radio, K, M, G, UNITTMP k = 1024 M = 1024 * 1024 G = 1024 * 1024 * 1024 radio = 1 Si fix (fsize / g)> 0,0 alors unittmp = gb radio = g Elseif fix (fsize / m)> 0 alors UNITTMP = MB radio = m Elseif Fix (fsize / k)> 0 alors unittmp = kb radio = k Autre unittmp = b radio = 1 Terminer si Si radio = 1 alors FormatFileSize = fsize & & nbsp; & unittmp Autre FormatFileSize = formatNumber (fsize / radio, 3) & unittMP Terminer si Fonction finale Sous-classe privée_terminée Définir objdom = rien Sub-Sub Classe finale 'http://www.cuoxin.com/ %> <Script Language = JavaScript> // Démarrer la barre de progression fonction startProgress (xmlpath) { DisplayProgress (); setProGressDivpos (); setTimeout (displayProgressBar ('xmlpath'), 500); } fonction afficheprogressbar (xmlpath) { var xmldoc = new activeXObject (msxml2.domDocument.3.0); xmldoc.async = false; xmlDoc.load (xmlPath); if (xmldoc.parseerror.errorcode! = 0) { var error = xmldoc.parseError; alerte (error.reason) setTimeout (displayProgressBar ('xmlpath'), 1000); retour; } var root = xmldoc.DocumentElement; // nœud racine var totalBytes = root.childNodes (0) .Text; var uploadBytes = root.childNodes (1) .Text; var pour cent = root.childNodes (2) .Text; ProgressPercent.innerHtml =% pour cent; ProgressBar.Style.Width =%%; uploadSize.InnerHtml = uploadBytes; uploadspeed.innerhtml = root.childNodes (3) .Text; TotalTime.innerHtml = root.childNodes (4) .Text; LeftTime.innerHtml = root.childNodes (5) .Text; if (pour cent <100) { setTimeout (displayProgressBar ('xmlpath'), 1000); } } fonction affichageProgress () { var objprogress = document.getElementById (Progress); objprogress.style.display =; } fonction roserProgress () { var objprogress = document.getElementById (Progress); objprogress.style.display = aucun; } fonction setProgressDivpos () { var objprogress = document.getElementById (Progress); objprogress.style.top = document.body.scrolltop (document.body.clientheight-document.getElementByid (progress) .offsetheight) / 2 objprogress.style.left = document.body.scrollleft (document.body.clientWidth-Document.getElementById (Progress) .OffsetWidth) / 2; } </cript> <style type = text / css> .progrès { Position: absolue; rembourrage: 4px; en haut: 50; Gauche: 400; Font-Family: Verdana, Helvetica, Arial, Sans-Serif; taille de police: 12px; Largeur: 250px; hauteur: 100px; Contexte: # FFFBD1; Couleur: # 3D2C05; Border: 1px solide # 715208; / * Propriétaire de Mozilla * / -Moz-Border-Radius: 5px; / * - Moz-Opacity: 0,95; * / } .Progress Table, .Progress TD { taille de police: 9pt; } .Bar{ Largeur: 100%; hauteur: 15px; Color d'arrière-plan: #CCCCCC; Border: 1px Encart # 666666; marge-fond: 4px; } .ProgressPercent { taille de police: 9pt; Couleur: # 000000; hauteur: 15px; Position: absolue; Z-Index: 20; Largeur: 100%; Texte-aligne: Centre; } .Progressbar { Color d'arrière-plan: # 91D65C; Largeur: 1px; hauteur: 15px; } </ style> <div id = Progress Style = Affichage: aucun; classe = progrès> <div class = bar> <div id = ProgressPercent Class = ProgressPercent> 0% </div> <div id = ProgressBar class = ProgressBar> </div> </div> <Table Border = 0 Cellpacing = 0 CellPadding = 2> <tr> <td> accordé </td> <td>: </td> <td id = uploadSize> </td> </tr> <tr> <TD> Télécharger la vitesse </td> <td>: </td> <td id = uploadspeed> & nbsp; </td> </tr> <tr> <TD> Temps total </td> <td>: </td> <td id = TotalTime> & nbsp; </td> </tr> <tr> <TD> Temps restant </td> <td>: </td> <td id = LeftTime> & nbsp; </td> </tr> </ table> </div> |
Partager: une brève analyse de Asp-Server.Urlencode Fonction inverse: UrlDECODE S'il y a des espaces, utilisez à la place. S'il y a d'autres caractères, utilisez à la place% ASCII. S'il y a quatre caractères d'octets tels que des caractères chinois, utilisez à la place deux% ASCII. Cependant, parfois nous devons également décoder la chaîne qui a été codée, mais l'ASP ne fournit pas