Rails如何强制下载chrome ios

时间:2016-04-18 10:23:08

标签: ios ruby-on-rails google-chrome ruby-on-rails-4

我有一个像下面这样的控制器动作。这个想法是强制下载而不是在浏览器上查看。它在桌面上运行得非常好,包括chrome,firefox和ie。但是,它根本不适用于chrome mobile ios。顺便说一句,文件很小,所以我通过#send_data

def download
  @attachment = current_listing.attachments.find(params[:id].to_i)

  url  = URI.escape(@attachment.url)
  data = open(url).read

  send_data data, type: 'application/octet-stream', disposition: 'attachment', filename: @attachment.file_name
end

1 个答案:

答案 0 :(得分:2)

根据ActionController::DataStream.send_data

的官方Rails 4文档

处理键的唯一可用值是:'attachment'和'inline',附件是默认值。

默认情况下也会设置application / octet-stream。

命令:

send_data data, filename: @attachment.file_name

应该足够了