2012-05-04 14 views
0

私は、PDFをMVCコントローラに送信し、PDFをデータベースに保存して取得しています。ファイルの結果を返す前に、PDFをサーバー側のディスクに保存すると、正常に表示されます。私は次のように似て何かをするときしかし、:MVC4 FileResult PDF破損

return File(fileBytesFromDB, "application/pdf", "file.pdf"); 

をして、ブラウザ(任意のブラウザ)からそれを表示しようと、PDFが破損して表示されます。実際、それはまったく異なるサイズです。

私は何が欠けていますか?

+0

これは、指定された情報から診断することはできません。 Fiddlerを使用してネットワークトラフィックを調べてみてください。 – usr

+0

@usr - トラフィックがPDFであるため、これは大変役立つものではありませんでした。これはファイルストリームで、エンコードされたストリームです。生のテキストファイルを渡すことはうまくいくようです。 – Ross

+0

レスポンス本文を保存します。それは有効なPDFですか? – usr

答えて

0

見つけました。私の同僚の1人が戻りアクションのデコレータとしてトークナイザを追加し、ファイルストリームをトークン化していました。 FileStreamResultFileContentResultを無視するロジックを追加しました。これでPDFが正常に出力されました。

0

また、これに対して別の解決策が見つかりました。私たちのDBでは、私たちのテーブルはファイルパス、名前、mimetypeを固定文字数のnchar(255)として保存していました。追加された空白は、.Trim()を使用してもFileResultメソッドでは機能しませんでした。列をvarcharに変更して私の特有の問題を解決しました

関連する問題