如何解决如何生成多张图像并将其放入一个zip文件中,以使用Rails3下载?
| 我正在网站上通过Google \的图表API生成QR码,并将其作为URL并传入了一些参数。 我有大约100个这些代码是通过URL生成的,如下所示:$= image_tag(\"http://chart.apis.google.com/chart?cht=qr&chl=#{qr.code}&chs=120x120&choe=UTF-8\",:size => \"120x120\")
我想创建一个遍历数组并生成png文件的方法,然后将其放在一个zip文件中,我可以单击一下下载。
我尝试使用send_data \"url\",:disposition = > \"attachment\",:type => \"image/png\"
这仅保存URL,而不保存生成的图像。将URL放入浏览器将打开包含图像的窗口。
除此之外,我无法将所有文件添加到zip文件中。 Rails是否有自己的内置压缩方法?
解决方法
首先,对于每个QR码,使用Net :: HTTP从Google API中将QR码的图片下载到临时文件中。然后使用rubyzip将临时文件压缩为zip文件。这里是一个使用zip库的示例。最后,使用
send_data
(如果已将其写入磁盘,则使用send_file
)将此生成的zip文件发送到客户端的网络浏览器。
,查看我的Nginx的mod_zip模块:
https://github.com/evanmiller/mod_zip
您可以动态地将ZIP文件流传输到客户端,而无需任何临时文件。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。