我有一个Rails 4应用程序,我用它来跟踪产品,在这种情况下产品是指徽章,使用唯一生成的QR码来识别徽章是否合法而不是伪造。我能够将所需的所有QR码正确生成到公共文件夹中的目录(public/codes_out
,这些是在数据库的初始种子上创建的),但我似乎无法下载目录
我似乎无法解决两个问题:
public/codes_out
目录,以便将其实际导出到真实用户。我听说过gzip(至少我认为它被称之为)可以很好地完成这项工作,但它与Heroku存在问题。如果是这种情况,那么我可以用另一台压缩器来压缩这个文件夹吗?send_file '/public/codes_out', :x_sendfile=>true
,但遗憾的是我不能这样发送,因为它没有被压缩。如果它有所帮助,这些QR码都只是简单的PNG,我尝试过使用Dragonfly并查看了Paperclip,但是不确定是否真的对于立即下载整个目录是有用的
答案 0 :(得分:1)
我找到了这个算法:
Dir["*"].each do |file|
if File.directory?(file)
`zip -r "#{file}.zip" "#{file}"`
end
end
这允许我压缩整个目录,允许我定位单个文件并使用此命令在我的控制器中下载:
send_file(Rails.root.join('public', 'codes_out.zip'), :type=>"application/zip" , :x_sendfile=>true)