我最近将 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。