ServerXMLHTTP を使用した ASP でのバイナリ データの読み取りと表示

この記事では、 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 オブジェクトから応答を直接渡して画面に表示することで、この応答をブラウザーの出力に書き込みます。

  1. 新しい 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
    %>
    
  2. ファイルを Web サーバーに保存します。

  3. ファイル を参照します。

ServerXMLHTTP オブジェクトを使用する場合は、次の点に注意してください。

  • スレッドの問題により、ASP ページとアクセスされるファイルは、異なる仮想フォルダーに存在する必要があります。
  • MSXML 3.0 パーサー以降をサーバーにインストールし、プロキシ構成ユーティリティを適切な設定で実行する必要があります。

関連情報