2017-02-22 15 views
-1

現在、WebブラウザでPDFファイルを開こうとしています。私は、DBからpdfのバイト配列を取得し、それをアプリケーションフォルダに格納しています。ここから私はC#コードで起動するPDFを取得できません。私が困惑しているので、どんな助けも大いに評価されるでしょう。なぜ私のPDFファイルは開かれていません。 ASP.net、c#

if(dt.Rows.Count > 0) 
     { 
      byte[] data = (byte[])dt.Rows[0][0]; 
      string strFileName = Utilities.GetAppBasePath()+Config.GetImages+DateTime.Now.Millisecond.ToString()+".pdf"; 
      System.IO.File.WriteAllBytes(strFileName, data); 

      OpenPDF(strFileName); 
} 
protected void OpenPDF(string strFileName) 
    { 
      Response.Redirect(strFileName); 
    } 
+1

「ここからは、C#コードで起動するPDFを取得できません。 ' - あなたは例外を受け取りますか?それは "それは動作しない"以外の詳細を提供することが役に立ちます。 –

答えて

0

PDFを実行すると、多くの通常のアプリケーションを実行するのと同じように動作するかどうか私にはわからない、それがなければ、私はあなたの最善の策は、「Process.Start(strFileName)のラインのようなものを使用することができると思います; 'または 'Process.Start(strFileName.Text);'

0

ご挨拶ありがとうございました。例外はありませんでしたが、それがうまくいかなかった理由はポストバックコールによるものでした。私は今、これを回避するためのトリガーを入れました。 、あなたの助けのために再び

if(dt.Rows.Count > 0) 
     { 
      byte[] data = (byte[])dt.Rows[0][0]; 

      OpenPDF(data);     
     } 

protected void OpenPDF(byte [] data) 
    { 
     HttpContext.Current.Response.Clear(); 
     HttpContext.Current.Response.ClearHeaders(); 
     HttpContext.Current.Response.ClearContent(); 
     HttpContext.Current.Response.ContentType = "application/pdf"; 
     HttpContext.Current.Response.Charset = ""; 
     HttpContext.Current.Response.AddHeader("Pragma", "public"); 
     HttpContext.Current.Response.AddHeader("Content-Disposition", "inline; filename=\"image.pdf\""); 
     HttpContext.Current.Response.BinaryWrite(data); 
     HttpContext.Current.Response.Flush(); 
     HttpContext.Current.Response.Close(); 
     HttpContext.Current.Response.End();    
    } 

のおかげで非常に新しい任意のvaugeネス、IMのために謝罪:ダン、あなたはそれがリダイレクトと私は、次のコードを使用している問題を解決するために応答することで、このように呼び出すことができませんでした右ですこのサイトに投稿すると、この投稿がこの問題の他の人に役立つことを願っています。

ありがとう

関連する問題