Saya telah membaca artikel tentang mengunduh gambar di halaman web
Download.asp?
download.asp kode sebagai berikut:
| Berikut ini adalah fragmen kode: % Server.ScriptTimeout = 9999 Function savetofile (dari, tofile) Pada kesalahan resume berikutnya redup geturl, objstream, imgs getUrl = trim (dari) Mybyval = getTtpStr (getUrl) Set ObjStream = Server.CreateObject (adodb.stream) objstream.type = 1 objstream.open objstream.write mybyval objstream.savetofile tofile, 2 objstream.close () atur objstream = tidak ada Jika err.number <> 0 err.clear fungsi akhir Fungsi getUrlencodel (BYVAL URL) 'Konversi Nama File Cina Redup i, kode getUrlencodel = Jika trim (url) = maka fungsi keluar untuk i = 1 ke len (url) Kode = ASC (mid (url, i, 1)) Jika kode <0 kode itu = kode 65536 Jika kode > 255 maka GetUrlencodel = getUrlencodel &%& kiri (hex (kode), 2) &%& kanan (hex (kode), 2) kalau tidak getUrlencodel = getUrlencodel & mid (url, i, 1) akhiri jika Berikutnya fungsi akhir Function getHttppage (URL) Pada kesalahan resume berikutnya redup http Setel http = server.CreateObject (msxml2.xmlhttp) Http.open get, url, false Http.send () Jika http.readystate <> 4 fungsi keluar GetHttppage = bytes2btr (http.responseBody) atur http = tidak ada Jika err.number <> 0 err.clear fungsi akhir Fungsi bytes2btr (VIN) redup strreturn Redup i, kode ini, nextcharcode Strreturn = Untuk i = 1 ke lenb (vin) Kode ini = ASCB (midb (vin, i, 1)) Jika kode ini <& H80 maka Strreturn = Strreturn & CHR (Kode ini) Kalau tidak NextCharcode = ascb (midb (vin, i 1,1)))) Strreturn = Strreturn & Chr (Clng (ThisCharcode) * & H100 Cint (NextCharcode)) i = i 1 Akhiri jika Berikutnya BYTES2BSTR = Strreturn Fungsi akhir Fungsi getFileName (nama file val) If instr (fileName,/) > 0 lalu filext_a = split (fileName,/) GetFileName = lcase (fileext_a (ubound (filext_a)) If instr (getFileName,?) > 0 lalu getFileName = kiri (getFileName, instr (getFileName ,?)-1) akhiri jika kalau tidak getFileName = nama file akhiri jika fungsi akhir Function getHttpstr (URL) Pada kesalahan resume berikutnya redup http Setel http = server.CreateObject (msxml2.xmlhttp) Http.open get, url, false Http.send () Jika http.readystate <> 4 fungsi keluar GetHttpstr = http.responseBody atur http = tidak ada Jika err.number <> 0 err.clear fungsi akhir Fungsi CreateDir (ByVal Localpath) untuk membuat program direktori, jika ada beberapa direktori, maka level dan satu tingkat pembuatan level Pada kesalahan resume berikutnya Localpath = ganti (localpath, /, /) Set FileObject = Server.CreateObject (Scripting.FilesyStemObject) Patharr = split (localpath, /) path_level = ubound (patharr) Untuk i = 0 ke path_level Jika i = 0 itun pathtmp = patharr (0) & / else pathtmp = pathtmp & patharr (i) & / Cpath = kiri (pathtmp, len (pathtmp) - 1) Jika tidak FileObject.FoldRexist (CPATH) FileObject.CreateFolder CPath Berikutnya Atur fileObject = tidak ada Jika err.number <> 0 lalu CreateRir = false Err.clear Kalau tidak CreateRir = true Akhiri jika Fungsi akhir Function getFileExt (byval filename) filext_a = split (nama file ,.) GetFileExt = lcase (fileext_a (ubound (filext_a)) fungsi akhir Fungsi getvirtual (str, jalur, urlhead) jika dibiarkan (str, 7) = http: // lalu url = str elseif left (str, 1) =/ Lalu Start = instrrev (str,/) Jika mulai = 1 lalu url =/ kalau tidak url = kiri (str, mulai) akhiri jika url = urlhead & url elseif left (str, 3) = ../ kemudian Str1 = mid (strrev, strrev (str, ../) 2) 2) AR = split (str, ../) lv = ubound (ar) 1 AR = split (jalur,/) url =/ untuk i = 1 hingga (ubound (ar) -lv) url = url & ar (i) Berikutnya url = url & str1 url = urlhead & url kalau tidak url = urlhead & kuat akhiri jika getVirtual = url fungsi akhir 'Contoh kode redup dlpath virtual =/download/ truepath = server.mappath (virtual) Jika permintaan (url) <> lalu url = permintaan (url) fn = getFileName (url) urlhead = kiri (url, (instr (ganti (url, //,),/)) urlpath = ganti (kiri (url, instrrev (url,/)), urlhead,) Strcontent = getHttppage (url) Mystr = strcontent Atur objregexp = regexp baru objregexp.ignorecase = true objregexp.global = true objregexp.pattern = (src | href) =. Set kecocokan = objregexp.execute (strcontent) Untuk setiap pertandingan dalam pertandingan str = match.value str = ganti (str, src =,) str = ganti (str, href =,) str = ganti (str ,,) str = ganti (str, ',) nama file = getFileName (str) getRet = getVirtual (str, urlpath, urlhead) temp = ganti (getret, //, **) Start = instr (temp,/) Endt = instrrev (temp,/)-mulai 1 Jika Mulai > 0 lalu Replp = virtual & mid (temp, start) & 'Response.write Rept & <br> mystr = ganti (mystr, str, repl) Dir = mid (temp, start, endt) temp = truepath & ganti (dir,/,/) CreateDir (temp) 'Response.write getRet & || & Temp & FileName & <br> <br> Savetofile getRet, Test & FileName akhiri jika Berikutnya Setel kecocokan = tidak ada akhiri jika %> |