Ich habe einen Artikel über das Herunterladen von Bildern in der Webseite gelesen
Download.asp?
download.asp Code wie folgt:
| Das Folgende ist das Codefragment: % Server.scripttimeout = 9999 Funktion Savetofile (von, Tofile) Bei der nächsten Fehleraufnahme als nächstes Dim Geturl, Objstream, IMGS Geturl = trimm (von) MyByval = Getttpstr (Geturl) Setzen Sie objstream = server.createObject (adodb.stream) objstream.type = 1 objstream.open objstream.write mybyval Objstream.Savetofile -Tofile, 2 objstream.close () objstream einstellen = nichts Wenn err.number <> 0 das err.clear Endfunktion Funktion Geturlencodel (Byval -URL) 'chinesischer Dateinamenkonvertierung Dim I, Code Geturlencodel = Wenn Trim (URL) = dann beenden Sie die Funktion für i = 1 bis len (URL) Code = ASC (MID (URL, I, 1)) Wenn Code <0, Code = Code 65536 Wenn Code > 255 dann Geturlencodel = Geturlencodel &%& links (Hex (Code), 2) &%& Right (Hex (Code), 2) anders Geturlencodel = Geturlencodel & Mid (URL, I, 1) Ende wenn nächste Endfunktion Funktion Gethttppage (URL) Bei der nächsten Fehleraufnahme als nächstes Dim Http Setzen Sie http = server.createObject (msxml2.xmlhttp) Http.open bekommen, url, falsch Http.send () Wenn http.readyState <> 4 die Ausgangsfunktion Getttppage = bytes2bstr (http.responsebody) Setzen Sie http = nichts Wenn err.number <> 0 das err.clear Endfunktion Funktion bytes2bstr (vin) Dimer Streturn Dim i, thischarcode, NextCharcode Streturn = Für i = 1 bis lenb (vin) Thischarcode = ascb (Midb (vin, i, 1)) Wenn thischarcode <& h80 dann Streturn = Streturn & chrt (thisharcode) Anders NextChode = ASCB (Midb (Vin, I 1,1))) Streturn = Streturn & chrt (clng (thischarcode) * & h100 cint (NextCharcode)) i = i 1 Ende wenn Nächste bytes2bstr = Streturn Endfunktion Funktion GetFileName (Byval Dateiname) Wenn Instrument (Dateiname,/) > 0 dann filext_a = split (Dateiname,/) GetFileName = lcase (Fileext_a (UBOUND (teufext_a)) Wenn Instrument (GetFileName, ") > 0 dann GetFileName = links (GetFileName, Instr (GetFileName,?)-1) Ende wenn anders GetFileName = Dateiname Ende wenn Endfunktion Funktion Gethttpstr (URL) Bei der nächsten Fehleraufnahme als nächstes Dim Http Setzen Sie http = server.createObject (msxml2.xmlhttp) Http.open bekommen, url, falsch Http.send () Wenn http.readyState <> 4 die Ausgangsfunktion Gethttpstr = http.responseBody Setzen Sie http = nichts Wenn err.number <> 0 das err.clear Endfunktion Function Createdir (Byval LocalPath) zum Erstellen eines Verzeichnisprogramms, wenn es mehrere Verzeichnisse gibt, dann die Erstellung von Level und einer Ebene Bei der nächsten Fehleraufnahme als nächstes LokalPath = Ersetzen (lokaler Anpass, /,) Set FileObject = server.createObject (scripting.filesystemObject) Patharr = Split (lokaler Anit in /) Path_Level = Ubound (Patharr) Für i = 0 bis path_level Wenn i = 0 ist, pathtmp = patharr (0) & / sonst pathtmp = pathtmp & patharr (i) & / Cpath = links (pathtmp, len (pathtmp) - 1) Wenn nicht fileObject.foldrexist (CPATH) Die DateiObject.CreateFolder CPATH Nächste Setzen Sie FileObject = nichts Wenn err.number <> 0 dann dann Createdir = false Err.clear Anders Createdir = true Ende wenn Endfunktion Funktion getFileext (Byval -Dateiname) filext_a = split (Dateiname,.) GetFileext = lase (Fileext_a (ubound (Filext_a))) Endfunktion Funktion GetVirtual (STR, Pfad, Urlehead) wenn links (str, 7) = http: // dann url = str elseif links (str, 1) =/ dann Start = instrrev (str,/) wenn start = 1 dann URL =/ anders url = links (str, start) Ende wenn URL = URLHEAD & URL elseif links (str, 3) = ../ Dann STR1 = MID (STR, Instrrev (str, ../) 2) 2) Ar = split (str, ../) LV = Ubound (AR) 1 AR = Split (Pfad,/) URL =/ für i = 1 bis (Ubound (ar) -lv) URL = URL & AR (i) nächste URL = URL & STR1 URL = URLHEAD & URL anders URL = URLHEAD & stark Ende wenn GetVirtual = URL Endfunktion 'Beispielcode Dim DlPath virtual =/download/ Truepath = Server.Mappath (virtuell) Wenn Anfrage (URL) <> dann URL = Anfrage (URL) fn = getFileName (URL) urlhead = links (URL, (Instrumente (ersetzen (url, //),/)) urlPath = ersetzen (links (URL, Instrument (URL,/)), URLHEAD,) StrContent = Gethttppage (URL) Mystr = strcontent Setzen Sie objregexp = new regexp objregexp.ignorecase = true objregexp.global = true objregexp.Pattern = (src | href) =. Setzen Sie Matches = objregexp.execute (StrContent) Für jedes Spiel in Spielen STR = Match.Value str = ersetzen (str, src =,) str = ersetzen (str, href =,) str = ersetzen (str ,,) str = ersetzen (str, ',) Dateiname = GetFileName (STR) getret = GetVirtual (STR, UrlPath, Urlehead) temp = ersetzen (getret, //, **) Start = instr (temp,/) Endt = instrrev (temp,/)-Start 1 Wenn Start > 0, dann Repl = virtual & mid (temp, start) & 'Response.write repl & <br> mystr = ersetzen (mystr, str, repl) Dir = Mid (Temp, Start, Endt) temp = Truepath & Ersatz (Dir,/,/) Erstellte (temp) 'Response.write getret & || & temp & Dateiname & <br> <br> SavetoFile GetRet, Test & Dateiname Ende wenn Nächste Setzen Sie Matches = nichts Ende wenn %> |