我最近将Rails 2.3应用程序升级到Rails 4.该应用程序的一个功能是上传PDF文件,然后将其存储在数据库中。也可以下载这些PDF。但是,PDF查看器无法显示某些(约20%)下载的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工作者时,它可以毫无问题地工作。它的nginx似乎破坏了PDF。
答案 0 :(得分:0)
这个问题与Unicorn和Nginx有关。但是,我没有找到问题的确切来源。在这种情况下,最实用的解决方案是用Passenger / Nginx替换Unicorn / Nginx。现在就像一个魅力。