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