2

次のコードがあります。

protected void Page_Load(object sender, EventArgs e)
{
        byte[] buffer = null;
        buffer = File.ReadAllBytes("C:\\myfile.pdf");
        HttpContext.Current.Response.ContentType = "application/pdf";
        HttpContext.Current.Response.OutputStream.Write(buffer, 0, buffer.Length);
        HttpContext.Current.Response.End();
}

ページロードの元である現在のページの横にある pfd ファイルの 2 つ目のウィンドウを開きたいと思います。

4

3 に答える 3

1

コードビハインド ファイルから新しいウィンドウを開く方法はありません。この Page_Load イベントが発生するページへのリンクにはtarget="_blank"、新しいウィンドウで開くための属性が必要です。例えば:

<a href="DownloadPdf.aspx" target="_blank">Download PDF<a>

補足として、これが ASPX ファイルの唯一の機能である場合は、代わりに HttpHandler の使用を検討することをお勧めします。

于 2012-11-15T13:56:58.567 に答える
1

これを行うには、ユーザーに表示できるアプリケーション内のパスに PDF をアップロードし、新しいウィンドウで PDF を開くための JavaScript を登録する必要があります。

protected void Page_Load(object sender, EventArgs e)
{
    byte[] buffer = null;
    buffer = File.ReadAllBytes("C:\\myfile.pdf");
    //save file to somewhere on server, for example in a folder called PDFs inside your application's root folder
    string newFilepath = Server.MapPath("~/PDFs/uploadedPDF.pdf");
    System.IO.FileStream savedPDF = File.Create(newFilepath);
    file.Write(buffer, 0, buffer.Length);
    file.Close();

    //register some javascript to open the new window
    Page.ClientScript.RegisterStartupScript(this.GetType(), "OpenPDFScript", "window.open(\"/PDFs/uploadedPDF.pdf\");", true);
}
于 2012-11-15T14:00:41.273 に答える
0

応答からこれを行うことはできません。

このページの読み込みにつながるハイパーリンクを制御できる場合は、属性を与えることができます。これtarget="_blank"により、ブラウザにそのリンクを新しいウィンドウで開くように要求されます。

于 2012-11-15T13:56:17.027 に答える