<%
'----------コンテンツをリモートで取得し、ファイルを含むコンテンツをローカル コンピュータに保存します。 ----------
'--------------xmlhttp と adodb.stream の使用---------------
'エラー時は次へ再開
'-----------------------------出力形式を定義---------- ------ ---------------
パス=リクエスト(パス)
if パス = then
パス=http://pcqc.86516.com/index.asp
'ここで定義されている URL は Baidu です。ファイルのサフィックスが必要であることに注意してください
終了する場合
sPath = パス
if left(lcase(path),7) <> http:// then
'---------------先頭に http がない場合、それはローカル ファイルであり、処理のために LocalFile に渡されます---------------
ローカルファイル(パス)
それ以外
'---------------それ以外の場合、それはリモート ファイルであるため、RemoteFile によって処理されます---------- --------
リモートファイル(パス)
終了する場合
'応答。書き込みエラー。説明
'---------------処理関数----------
サブローカルファイル(パス)
' ------------------ローカル ファイルの場合は、そのページにジャンプするだけです ------------------ -
'応答.リダイレクト パス
Response.write でエラーが発生しました。
エンドサブ
サブリモートファイル(sPath)
'----------------------リモートファイル処理機能----------- --------------------------------------
ファイル名 = GetFileName(sPath)
'---------------GetFileName は、アドレスを修飾されたファイル名に変換するプロセスです---------------
ファイル名 = Server.MapPath(キャッシュ/ & ファイル名)
objFso = Server.CreateObject(Scripting.FileSystemObject) を設定します
'応答.ファイル名を書き込みます
if objFso.FileExists(FileName) then
'---------------ファイルがアクセスされているかどうかを確認し、アクセスされている場合は単純にジャンプします----------
Response.Redirect キャッシュ/ & GetFileName(パス)
それ以外
'---------------それ以外の場合は、GetBody 関数を使用して最初に読み取ります----------
'応答.書き込みパス
t = GetBody(パス)
'------ブラウザへの書き込みにはバイナリ メソッドを使用します---------------------- -------- --
Response.BinaryWrite t
レスポンス.フラッシュ
'-----------------出力バッファリング----------------------------- --- ----------
SaveFile t,GetFileName(パス)
'------次回のアクセスのためにファイルの内容をローカル パスにキャッシュします----------
次の場合に終了
objFso = なしを設定します
エンドサブ
関数 GetBody(url)
'----------------------この機能はコンテンツをリモートから取得する機能です------ ---
'エラー時は次から再開
'応答。URLを書き込みます
取得 = CreateObject(Microsoft.XMLHTTP) を設定します
'---------------------XMLHTTP オブジェクトの作成-------------------------- -----
検索あり
.Open Get、URL、False、、
' ------------------Get を使用して送信、非同期メソッド -----------------------
。送信
'GetBody = .ResponseText
GetBody = .ResponseBody
'------関数は取得したコンテンツを返します-----------
で終わる
取得 = なしを設定します
'応答。書き込みエラー。説明
終了機能
関数 GetFileName(str)
'--------------------------この関数は修飾ファイル名関数です-------------- - ---
str = 置換(lcase(str),http://,)
str = 置換(lcase(str),//,/)
str = 置換(str,?,)
str = 置換(str,&,)
str = 置換(str,/,)
str = 置換(str,vbcrlf,)
GetFileName = str
終了機能
sub SaveFile(str,fName)
'---------------この機能はストリーム内容を保存する機能です--------------- - ----
'エラー時は次から再開
objStream = Server.CreateObject(ADODB.Stream) を設定します。
'---------------ADODB.Stream オブジェクトを作成するには、ADO バージョン 2.5 以降が必要です---------------
'objStream.Type = adTypeBinary
objStream.Type = 1
'---------------バイナリモードで開く--------------------- -----
objStream.Open
objstream.write str
'--------------------------文字列の内容をバッファに書き込みます----- ---------- ----
'response.Write fname
「進路注意」
objstream.SaveToFile E:/webroot/pcqc/vip/UploadFile/cache/&fName,2
'objstream.SaveToFile d:/cache/ & fName,adSaveCreateOverWrite
'--------------------------バッファされた内容をファイルに書き込みます------ -------- ----
'response.BinaryWrite objstream.Read
objstream.Close()
objstream = 何も設定しない
'----------------------オブジェクトを閉じてリソースを解放します---------------------- - ----
'応答。書き込みエラー。説明
エンドサブ
関数 saveimage(from,tofile)
dim geturl、objStream、imgs
geturl=トリム(から)
imgs=gethttppage(geturl)'画像の特定のコンテンツを取得するプロセス
Set objStream = Server.CreateObject(ADODB.Stream)' ADODB.Stream オブジェクトを作成するには、ADO 2.5 以降が必要です
objStream.Type =1'バイナリ モードで開く
objStream.Open
objstream.write imgs' は文字列の内容をバッファに書き込みます
objstream.SaveToFile server.mappath(tofile),2' - バッファリングされたコンテンツをファイルに書き込みます
objstream.Close()'オブジェクトを閉じる
objstream = なしを設定します
終了関数
%>