C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.31776 の関連記事表示

<< 0 >>
■31776  フレームの表示について
□投稿者/ Webは初 -(2009/01/28(Wed) 15:40:48)

    分類:[ASP.NET (VB)] 

    いつも参考にさせていただいております。

    IEの上部分に各コントロールを配置、下部分はPdfを表示し、
    下部分だけ上下にスクロールさせられるというWebページを作
    ろうとしています。

    環境はVS2008(ASP.NET)です。
    framesetタグは使えないということで、masterpageを使って
    やろうとしたのですが、なぜかPdfがIE全体に表示され
    masterpageでセットしたコントロールなどが表示されません。

    page_loadで以下のコードをよんでおります。

    ----------------------------------------------------------
    Dim sPath As String = "c:\"
    Dim sFile As String = "RFP資料.pdf"

    Response.Buffer = True
    Response.Clear()
    Response.ClearContent()
    Response.ClearHeaders()
    Response.ContentType = "Application/pdf"
    Response.AddHeader("Content-Disposition", "attachment;filename=c:\RFP資料.pdf")

    Dim fs As IO.FileStream
    Dim br As IO.BinaryReader

    fs = New FileStream(sPath & sFile, FileMode.Open)
    br = New BinaryReader(fs)

    Dim rb As Byte() = br.ReadBytes(fs.Length - 1)

    Response.BinaryWrite(rb)
    br.Close()
    fs.Close()
    Response.End()
    ----------------------------------------------------------

    改善策はあるのか、あるいは仕様をみたすための代替案があればお教えください。
    長文申し訳ありません。よろしくお願いいたします。
親記事 /過去ログ56より / 関連記事表示
削除チェック/

■31851  Re[1]: フレームの表示について
□投稿者/ biac -(2009/01/29(Thu) 13:56:47)
>
    ※ レスが付かないですねぇ。 「分類:[ASP.NET (VB)]」 と言われてますが、 そのへんとはあまり関係無い問題ですし… f(^^;


    No31776 (Webは初 さん) に返信
    > IEの上部分に各コントロールを配置、下部分はPdfを表示し、
    > 下部分だけ上下にスクロールさせられるというWebページを作
    > ろうとしています。

    IE で表示するのですよね。
    ということは、 IE に届くデータ ( html ソース ) が、 どうなってるかが問題。

    そのへん、 理解されてますか?
    「IEの上部分に各コントロールを配置」 という 「コントロール」 は、 ASP.NET の開発環境ではコントロールとして見えていますが、 ブラウザにそのコントロールが届いてるわけではありません。


    > 環境はVS2008(ASP.NET)です。
    > framesetタグは使えないということで、masterpageを使って
    > やろうとしたのですが、なぜかPdfがIE全体に表示され
    > masterpageでセットしたコントロールなどが表示されません。

    まず、単純な マスターページ + コンテンツページ を作って、 IE で表示して見てください。
    そうしたら、 IE に届いている HTML ソースを見てください。 そこにマスターページとコンテンツページの区別はありますか?

    マスターページは、 frameset や iframe の代わりにはなりません。


    > page_loadで以下のコードをよんでおります。
    >
    > ----------------------------------------------------------
    > Dim sPath As String = "c:\"
    > Dim sFile As String = "RFP資料.pdf"
    >
    > Response.Buffer = True
    > Response.Clear()
    > Response.ClearContent()
    > Response.ClearHeaders()
    > Response.ContentType = "Application/pdf"
    > Response.AddHeader("Content-Disposition", "attachment;filename=c:\RFP資料.pdf")
    >
    > Dim fs As IO.FileStream
    > Dim br As IO.BinaryReader
    >
    > fs = New FileStream(sPath & sFile, FileMode.Open)
    > br = New BinaryReader(fs)
    >
    > Dim rb As Byte() = br.ReadBytes(fs.Length - 1)
    >
    > Response.BinaryWrite(rb)
    > br.Close()
    > fs.Close()
    > Response.End()
    > ----------------------------------------------------------

    Response.End()
    http://msdn.microsoft.com/ja-jp/library/system.web.httpresponse.end.aspx
    …を呼び出した時点で、 そこまでに書き出したデータだけがブラウザに返信されます。
    つまり、 aspx の内容はまったく返信されません。 この場合は、 "RFP資料.pdf" の内容だけが、 ブラウザに届きます。
    # ぉ、ここだけは ASP.NET の話だ f(^^;


    さて。

    ・HTML の 1ページ ( つまり、 1つの HTTP リクエスト/レスポンス ) で、 複数のコンテンツをまとめて返すことはできません。
    つまり、 HTML のテキストデータと PDF のバイナリデータを 1回で返すことは不可能です。
    ※ IE8 からは、 そうでもなくなっていきますけどね。

    ・ブラウザからの 1回のリクエストに対して、 PDF データだけを返すことは、 すでに出来ていますね。 (提示していただいたコード)

    ・では、 実存する PDF ファイルを HTML のページ内に取り込んで表示する方法を研究してみてください。 それができれば、 あとは、 PDF ファイル名のところを、 PDF データを返してくれる aspx の url に書き換えるだけです。
    参考:
    http://www.keiyu.com/doc/pdflink.htm#03
    > WWWブラウザでのPDFの表示について 〜 HTML文書にPDF文書を埋め込むには
    http://www.microsoft.com/japan/msdn/community/gdn/ShowPost-21172.htm
    > スレッド: データを保存できなくさせる方法


    なお、 Response.BinaryWrite() を使った開発をするなら、 Web サーバからのレスポンスを生で見る方法を会得しておいた方がいいですよ。
    Proxomitron
    http://ja.wikipedia.org/wiki/Proxomitron
    http://www.pluto.dti.ne.jp/~tengu/proxomitron/download.html
    のようなローカルプロキシを噛ますのが常套手段です。
記事No.31776 のレス /過去ログ56より / 関連記事表示
削除チェック/

■32146  Re[2]: フレームの表示について
□投稿者/ 初心者? -(2009/02/02(Mon) 12:41:38)
    biac 様

    ご回答ありがとうございます。
    まだまだ勉強不足だということがよくわかりました。。。^^;;;

    参考URLを見て勉強させていただきます。
記事No.31776 のレス /過去ログ56より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -