Ruby on Rails 4 会损坏 PDF 文件



我最近将 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没有直接关系。我有一个独角兽/nginx设置。当我直接连接到独角兽工作者时,它可以正常工作。是nginx似乎破坏了PDF。

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

最新更新