如何直接下载pdf文件,而不是使用railswave中的carrierwave将其重定向到新页面

时间:2015-02-28 05:24:27

标签: ruby-on-rails carrierwave

我正在使用carrierwave上传和下载文件。 我可以直接下载所有文件。但是对于pdf文件,当我点击下载时,它会重定向到要求打开,下载和等字段的新页面。 有没有办法直接下载pdf文件? (这是我的客户要求)

我的控制器:

  def show
 @invoice_detail = InvoiceDetail.find(params[:id])

  respond_to do |format|
    format.html # show.html.erb
    format.xml  { render :xml => @invoice_detail }
    format.pdf { render :layout => false }
  end
  end

attachment_uploader.rb:

 def store_dir
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
  end
  def extension_white_list
    %w(xlsx pdf doc htm html docx png jpg jpeg xls)
  end
  def filename
  "#{model.invoice_number}.#{file.extension}" if original_filename.present?
end

show.html.erb:

<%= link_to 'download file', invoice_details.attachment_url %>

1 个答案:

答案 0 :(得分:1)

在show.html.erb中使用以下行

<%= link_to 'download file', invoice_details.attachment_url, download: invoice_details.attachment_url, target: "_blank" %>

以上仅适用于HTML 5.更多信息http://www.w3schools.com/jsref/prop_anchor_download.asp

修改   如果要删除打开/下载提示,则不可能。它是浏览器的配置。