Webページで写真をダウンロードすることができます
download.asp?
次のようにダウンロード.aspコード:
| 以下はコードフラグメントです。 % server.scripttimeout = 9999 function savetofile(from、tofile) エラーの再開時に次に再開します dim geturl、objstream、imgs geturl = trim(from) mybyval = getttpstr(geturl) objstream = server.createobject(adodb.stream)を設定します objstream.type = 1 objstream.open objstream.write mybyval objstream.savetofile tofile、2 objstream.close() objstream = Nothingを設定します err.number <> 0の場合、err.clear エンド関数 関数geturlencodel(byval url) '中国のファイル名変換 dim i、code geturlencodel = trim(url)= if exit function i = 1の場合(url) code = asc(mid(url、i、1)) Code <0 thatn code = code 65536の場合 コード255の場合 geturlencodel = geturlencodel&%&left(hex(code)、2)&%&right(hex(code)、2) それ以外 geturlencodel = geturlencodel&mid(url、i、1) ifを終了します 次 エンド関数 関数gethttppage(url) エラーの再開時に次に再開します dim http http = server.createobject(msxml2.xmlhttp)を設定します http.open get、url、false http.send() http.ReadyState <> 4の場合、出口機能 gethttppage = bytes2bstr(http.responsebody) http = Nothingを設定します err.number <> 0の場合、err.clear エンド関数 関数bytes2bstr(vin) Dim Strreturn DIM I、ThisCharcode、Next Charcode strreturn = i = 1にレンブ(vin)へ thischarcode = ascb(midb(vin、i、1)) thischarcode <&h80の場合 strreturn = strreturn&chr(thischarcode) それ以外 NextCharcode = ascb(midb(vin、i 1,1))) strreturn = strreturn&chr(clng(thischarcode) *&h100 cint(next charcode)) i = i 1 ifを終了します 次 bytes2bstr = strreturn エンド関数 function getFileName(byvalファイル名) IF If strust(filename、/)>0 then filext_a = split(filename、/) getFileName = lcase(fileext_a(ubound(filext_a)) If strust(getFileName?)>0 getFileName = left(getFileName、strun(getFileName、?)-1) ifを終了します それ以外 getFileName = filename ifを終了します エンド関数 関数gethttpstr(url) エラーの再開時に次に再開します dim http http = server.createobject(msxml2.xmlhttp)を設定します http.open get、url、false http.send() http.ReadyState <> 4の場合、出口機能 gethttpstr = http.responsebody http = Nothingを設定します err.number <> 0の場合、err.clear エンド関数 関数createdir(byval localpath)ディレクトリプログラムを作成するために、複数のディレクトリがある場合は、レベルと1つのレベルの作成があります エラーの再開時に次に再開します localpath =置換(localpath、 /、 /) fileObject = server.createObject(scripting.filesystemObject)を設定します patharr = split(localpath、 /) path_level = ubound(patharr) i = 0からpath_levelへ i = 0 thatn pathtmp = patharr(0)& / else pathtmp = pathtmp&patharr(i)& / cpath = left(pathtmp、len(pathtmp)-1) fileobject.foldrexist(cpath)ではない場合は、fileobject.createfolder cpath 次 FileObject = Nothingを設定します err.number <> 0の場合 createdir = false err.clear それ以外 createdir = true ifを終了します エンド関数 function getFileExt(byval filename) filext_a = split(filename、。) getFileExt = lcase(fileext_a(ubound(filext_a)) エンド関数 関数getVirtual(str、path、urlhead) 残っている場合(str、7)= http:// then url = str elseif left(str、1)=/ then start = instrrev(str、/) 開始= 1の場合 url =/ それ以外 url = left(str、start) ifを終了します url = urlhead&url elseif left(str、3)= ../ then str1 = mid(str、instrrev(str、../)2)2) ar = split(str、../) lv = ubound(ar)1 ar = split(path、/) url =/ i = 1から(ubound(ar)-lv)の場合 url = url&ar(i) 次 url = url&str1 url = urlhead&url それ以外 url = urlhead&strong ifを終了します getVirtual = url エンド関数 'サンプルコード 薄暗いdlpath virtual =/download/ truepath = server.mappath(virtual) request(url)<> thenの場合 url = request(url) fn = getFileName(url) urlhead = left(url、(struption(url、//、)、/)) urlpath = cheplage(left(url、instrrev(url、/))、urlhead、) strcontent = gethttppage(url) mystr = strcontent objregexp = new regexpを設定します objregexp.ignorecase = true objregexp.global = true objregexp.pattern =(src | href)=。 一致= objregexp.execute(strcontent)をセット 試合の各試合について str = match.value str =置換(str、src =、) str =置換(str、href =、) str =置換(str ,,) str =置換(str、 '、) filename = getFileName(str) getret = getVirtual(str、urlpath、urlhead) temp = cheplage(getret、//、**) start = strust(temp、/) endt = instrrev(temp、/) - 開始1 開始する場合は、0では repl = virtual&mid(temp、start)& 'Response.Write Repl&<br> myStr =置換(mystr、str、repl) dir = mid(temp、start、endt) temp = truepath&falple(dir、/、/) createdir(temp) 'Response.write getret&|| SavetOfile GetRet、Test&Filename ifを終了します 次 一致=何も設定しません ifを終了します %> |