我有一个像下面这样的控制器动作。这个想法是强制下载而不是在浏览器上查看。它在桌面上运行得非常好,包括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
答案 0 :(得分:2)
根据ActionController::DataStream.send_data
的官方Rails 4文档处理键的唯一可用值是:'attachment'和'inline',附件是默认值。
默认情况下也会设置application / octet-stream。
命令:
send_data data, filename: @attachment.file_name
应该足够了