瀏覽器直接開啟pdf檔,不出現詢問下載視窗

摘要:瀏覽器直接開啟pdf檔,不出現詢問下載視窗

客戶的需求是希望在瀏覽器直接開啟pdf檔,不要再出現詢問下載或直接開啟的視窗!

而我們會在asp.net中用到reporting services所做的報表,轉成pdf供客戶下載。

因為程式碼的部份需要稍微改寫..

以下是實作後的c# code,xxx表示取得資料;

假設我有一個download.aspx的網頁,內容如下,記得這一頁不要有iframe哦,不然會沒有效果

private void Page_Load(object sender, System.EventArgs e)
{
   DataSet ds=xxxx;

   if (ds.Tables[0].Rows.Count>0)
   {
    Response.Write(ds.Tables[0].Rows[0]["x"].ToString());
    string newName=HttpUtility.UrlEncode(ds.Tables[0].Rows[0]["x"].ToString(),System.Text.Encoding.UTF8);
    Response.Clear();
    //以下為原先的code
    //Response.AddHeader("Content-Disposition","attachment; filename=" + newName);
    /Response.ContentType="application/octet-stream";

    //以下為變更後的code
    Response.AddHeader("Content-Disposition","inline; filename=" + newName);
    Response.ContentType="Application/PDF";

    Response.AddHeader("Content-Length", (ds.Tables[0].Rows[0]["y"] as byte[]).Length.ToString());
    Response.BinaryWrite(ds.Tables[0].Rows[0]["y"] as byte[]);
    Response.End();
   }

}