2012-05-04 104 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

我找到了。我的一位同事在一個標記器中添加了一個返回操作的裝飾器,並將其標記爲文件流。我添加了一些邏輯來忽略FileStreamResultFileContentResult,現在PDF文件沒問題。

0

我還發現了另一個解決方案。在我們的數據庫中,我們的表格將文件路徑,名稱,mimetype存儲爲nchar(255),這是一個固定的字符數。即使使用.Trim(),添加的空白也不適用於FileResult方法。我的特殊問題已通過將列更改爲varchar