如何生成多张图像并将其放入一个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文件流传输到客户端,而无需任何临时文件。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...