我将PDF收据存储在S3中。我使用WickedPDF生成PDF文件。通过我们应用程序的管理区域,有一个“下载”链接,它只是指向S3路径的直接链接:
link_to "Download", order.receipt.url unless order.receipt.blank?
有没有办法让它默认在浏览器窗口中打开,而不是直接下载?
我将PDF收据存储在S3中。我使用WickedPDF生成PDF文件。通过我们应用程序的管理区域,有一个“下载”链接,它只是指向S3路径的直接链接:
link_to "Download", order.receipt.url unless order.receipt.blank?
Content-Disposition: attachment; filename="name.pdf"
,没有此标题,浏览器将尝试内联呈现该文件(同一窗口)。require "open-uri"
class OrderController
def receipt
@order=Order.find(....)
render text: open(@order.receipt.url).read, content_type=>'application/pdf'
end
end
<object data="<%= upload.file.url %>" width="100%" height="100%" style="min-height: 100%; height:100%; width:100%" type="<%= upload.mime_type %>">
<p>No PDF render functionality on your device...</p>
</object>
pdf = @sales_invoice.pdf
send_data pdf.render, filename: "sales_invoice.pdf",
type: "application/pdf",
disposition: "inline"
渲染 PDF:
render pdf: "Invoice",
orientation: 'Portrait',
template: "Invoice/download",
page_size: 'Letter'
使用 send_file 方法。 这是可能会对您有所帮助的链接。 http://apidock.com/rails/ActionController/Streaming/send_file