この記事では、 ServerXMLHTTPを使用して Active Server Pages (ASP) でバイナリ データを読み取って表示する方法について説明します。
元の製品バージョン: インターネット インフォメーション サービス
元の KB 番号: 303982
まとめ
ServerXMLHTTP には、異なる Web サーバー間でサーバーセーフな HTTP アクセス用のメソッドとプロパティが用意されています。 このオブジェクトを使用して、ASP を介してこれらのサーバー間でバイナリ データを交換できます。
詳細
ASP ページは、適切な種類の多目的インターネット メール拡張機能 (MIME) を使用してバイナリ データを受信して表示します。 たとえば、.gif画像の場合は、次を使用して MIME の種類を変更します。
Response.ContentType = "image/gif"
Note
Adobe Acrobat ファイルの場合は、 application/pdfを使用するか、イメージを.jpgする場合は、 image/jpgを使用します。
MIME の種類の既定の動作では、Microsoft Internet Explorer でドキュメントを開きます。 次のコードを追加すると、ユーザーはファイルを保存するか、関連付けられているプログラムでファイルを開くよう求められます。
Content-disposition: attachment; filename=fname.ext
詳細については、「 既知の MIME の種類の [ファイルのダウンロード] ダイアログ ボックスを生成する方法を参照してください。
次の手順では、 ServerXMLHTTP を使用して.jpg ファイルをブラウザーにストリーミングする方法を示します。 ServerXMLHTTP は、HTTP 経由で ASP ページから XML 応答を取得します。 この例では、GET を使用して、Web サーバーにデータを転送せずに要求を送信します。 この例では、最初に応答が画像 (image/jpg) であることをブラウザーに通知し、Response オブジェクトから応答を直接渡して画面に表示することで、この応答をブラウザーの出力に書き込みます。
新しい ASP ページを作成し、ページに次のコードを貼り付けます。
<%@ Language=VBScript %> <% Response.ContentType = "image/jpeg" ' Uncomment to prompt user for download or run with associated program. ' Response.AddHeader "content-disposition","attachment;filename=ReadMe.jpg" Set objHTTP = Server.CreateObject("Msxml2.ServerXMLHTTP")' Point to an image file with adequate access permissions granted objHTTP.open "GET", "http://servername/picture.jpg",false objHTTP.send Response.BinaryWrite objHTTP.ResponseBody Set objHTTP = Nothing %>ファイルを Web サーバーに保存します。
ファイル を参照します。
ServerXMLHTTP オブジェクトを使用する場合は、次の点に注意してください。
- スレッドの問題により、ASP ページとアクセスされるファイルは、異なる仮想フォルダーに存在する必要があります。
- MSXML 3.0 パーサー以降をサーバーにインストールし、プロキシ構成ユーティリティを適切な設定で実行する必要があります。