2017-12-19 19 views
0

をダウンロード:クリップ添付ファイルからzipファイルを作成し、次のように私のコードは、多くの写真を含むzipファイルを作成しようとしてい

 compressed_filestream = Zip::OutputStream.write_buffer do |zos| 
     @pictures.each do |p| 
     image_url = p.picturefile.url(:original) 
     zos.put_next_entry p.picturefile_file_name 
     zos.print(URI.parse(image_url))  
     end 
    end 
    compressed_filestream.rewind 
    send_data compressed_filestream.read, filename: "pictures.zip" 

これはpictures.zipファイルが作成されますが、それが唯一のテキスト・URLが含まれています実際のイメージの代わりに各イメージを表示します。

+0

URLの代わりにファイルへのパスが必要ですか? – Kris

+1

ファイルを読み取り、zipに書き込もうとします。 'Paperclip.io_adapters.for(p.picturefile).read'。 – coderhs

答えて

1

今すぐイメージのURLをファイルに渡しています。あなたがする必要があるのは行の内容を渡すことです。

compressed_filestream = Zip::OutputStream.write_buffer do |zos| 
    @pictures.each do |p| 
    zos.put_next_entry p.picturefile_file_name 
    zos.print(Paperclip.io_adapters.for(p.picturefile).read)  
    end 
end 
compressed_filestream.rewind 
send_data compressed_filestream.read, filename: "pictures.zip" 
+0

は、魅力のように動作します、ありがとう! – hso

関連する問題