1

我最近将 Rails 2.3 应用程序升级到 Rails 4。该应用程序的一个功能是上传 PDF 文件,然后将其存储在数据库中。也可以下载这些 PDF。但是,某些(约 20%)下载的 PDF 文件无法在 PDF 查看器中显示(“PDF 文档已损坏”)。奇怪的是,我可以使用 Rails 2.3 从同一个数据库下载相同的 PDF 并且一切正常。这使我假设数据库中的 PDF 没有损坏,但是当 Rails 4 交付它们时出现了问题。

这是发送 PDF 文件的相应代码:

def show_pdf_document
  send_data @files.pdf.binary_data, :filename => @files.pdf.filename, :type =>@files.pdf.filetype
end

可能是编码问题?

更新:问题似乎与 Rails 4 没有直接关系。我有一个 Unicorn/nginx 设置。当我直接连接到 Unicorn worker 时,它可以正常工作。似乎是 nginx 损坏了 PDF。

4

1 回答 1

0

这个问题与 Unicorn 和 Nginx 有关。但是,我没有找到问题的确切根源。在这种情况下,最实用的解决方案是将 Unicorn/Nginx 替换为Passenger/Nginx。现在就像一个魅力。

于 2013-11-06T00:38:21.433 回答