2009-05-13 10 views
4

いいえ、バイナリからPDFファイルをデータベースに書き込む

私は格納されたPDFを持つSQL 2005データベースを持っています。列は画像タイプを使用します。したがって、PDFがストアを取得すると、バイト[]配列になります。

ここは難しい部分です。私はデータを格納することができますが、バイト配列をPDF形式に戻してWebページに表示する方法についてはわかりません。

3番目のツールを使用してPDFを生成しています。これはうまくいきます。

Doc document = new Doc(); 
byte[] myArray = document.GetData(); 

私は、データベースにバイト[]配列を挿入次のよう

私はバイト[]配列を生成しなければならないコードがあります。

私は戻って、私はこれを行うデータベースから配列を取得する場合:

public byte[] GetPDF(parameters) 
{ 
    return DAL.GetPDF(parameters) 
} 

それがすることになっているように、これは有効なバイト[]配列を返します。

唯一の問題は、実際にPDFをWebサイトに書き込んでWebサイトに表示することですが、これを行う方法や開始する場所がわかりません。

+0

答えを確認した後、2が正しいとします。どちらを正しい答えとして選ぶのですか?私はこれに新しく誰も怒らせたくない... –

+2

本当にあなたの選択です。しかし、あなたにとって最も効果的なコードと、最も効率的なコードを選びます。 – CodeLikeBeaker

+0

私を選ぶ、笑!ちょうど冗談だ – DaDa

答えて

3
 Response.ContentType = "application/pdf"; 
     byte[] bytes = YourBinaryContent; 

     using (BinaryWriter writer = new BinaryWriter(context.Response.OutputStream)) 
     { 
      writer.Write(bytes, 0, bytes.Length); 
     } 
+0

これを試してみるつもりです –

+0

これは私にとってはうまくいかなかった...コンテキストエラーを投げている、それはタイプミスですか? –

+0

コンテキストは、PDFファイルを表示するHandlerに渡すHttpContextです。とにかくそれを削除することができます – DaDa

1

Response.ContentTypeを "application/pdf"に設定してから、Response.BinaryWriteメソッドを呼び出して、バイトデータを渡します。

2

これは非常に簡単です。実際、私はちょうど1ヶ月前にこれをやった。 PDFをデータベースに保存してから、顧客が文書を閲覧するように要求したときに書き出す必要がありました。あなたがする必要がどのような

は、次のコードを追加するには、Webページ上にある:それはyaのために働く場合

byte[] myarray = BusinessLayer.GetPDF(parameters) 

Response.Clear(); 
Response.ContentType = "application/pdf"; 
Response.BinaryWrite(myarray); 

を参照してください。

+0

私はこれを試してみるつもりです –

+0

これはうまくいきましたが、私は他の回答も見ています –

関連する問題