解決したいこと
ローカルに保存されている、main.jpg、top_map_off.jpgをzipダウンロードしたい。
解決策
画像はバイナリモードでしか書き出せないので、openするときにバイナリモードを指定する。
Zip::OutputStream.open('example.zip') do |zip|
default_images = ["main", "top_map_off"]
default_images.each do |default_image|
img_path = Rails.root.join(
"app", "lib", "output", "download_tpl", @kikaku_date.kikaku_cd, "#{target}", "images", "#{default_image}.jpg
) # ローカルに保存されている画像ファイルのフルパス
zip.put_next_entry "#{@zip_file_basename}/#{target}/images/#{default_image}.jpg"
zip.print open(img_path, "rb").read # 画像をバイナリモードで開く
end
end