2017-12-19 24 views
0

많은 사진이 포함 된 zip 파일을 만들려고 다운로드, 다음과 같이 내 코드입니다 : 이것은 pictures.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" 

하지만, 그것은 단지의 텍스트 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