如何生成多个图像并将它们放入一个zip文件以便使用Rails3下载?

Rob*_*ert 3 ruby zip image download ruby-on-rails-3

我正在我的网站上生成来自谷歌图表API的二维码,作为一个传递了一些参数的URL.

我有大约100个这样的代码是从URL生成的,如下所示:

$= image_tag("http://chart.apis.google.com/chart?cht=qr&chl=#{qr.code}&chs=120x120&choe=UTF-8", :size => "120x120")
Run Code Online (Sandbox Code Playgroud)

我想创建一个循环遍历我的数组并生成png文件的方法,然后将它们放在一个zip文件中,我可以从一次点击下载.

我试过用 send_data "url", :disposition = > "attachment", :type => "image/png"

这只保存了URL,而不是生成的图像.将URL放入浏览器会打开一个包含图像的窗口.

除此之外,我无法将所有文件添加到zip文件中.Rails有自己的内置压缩方法吗?

Jon*_*ran 5

首先,对于每个QR码,使用Net :: HTTP将来自Google API的QR码图像下载到临时文件中.然后使用rubyzip将临时文件压缩为zip文件.如何使用压缩库的一个例子是在这里.最后,使用send_data(或者send_file如果您已将其写入磁盘)将此生成的zip文件发送到客户端的Web浏览器.