在rails 3.2.13中,我使用paperclip gem进行文件上传。我希望所有附件都能在压缩文件夹中下载。
我在宝石下面使用
rubyzip (1.1.3)
如果我使用下面的代码,会收到类似"未初始化的常量Zip :: ZipFile"
的错误@assets = Assets::Resume.all
tmp_filename = "#{Rails.root}/tmp/tmp_zip_" <<
Time.now.strftime("%Y%m%d%H%M%S").to_s <<
".zip"
Zip::ZipFile.open(tmp_filename, Zip::ZipFile::CREATE) do |zip|
@assets.each do |e|
zip.add("#{e.document.original_filename}", e.document.url)
end
end
send_data(File.open(tmp_filename).read, :type => 'application/zip', :disposition => 'attachment', :filename =>"#{current_user.id}_cvs.zip")
File.delete tmp_filename
为了解决这个问题,我修改了下面提到的代码。在这个修改之后,我得到一个带有空数据(没有文件)的.zip文件。
@assets = Assets::Resume.all
tmp_filename = "#{Rails.root}/tmp/tmp_zip_" <<
Time.now.strftime("%Y%m%d%H%M%S").to_s <<
".zip"
Zip::File.open(tmp_filename, Zip::File::CREATE) do |zip|
@assets.each do |e|
zip.add("#{e.document.original_filename}", e.document.url)
end
end
send_data(File.open(tmp_filename).read, :type => 'application/zip', :disposition => 'attachment', :filename =>"#{current_user.id}_cvs.zip")
File.delete tmp_filename
请帮我解决这个问题。
答案 0 :(得分:0)
尝试e.document.path而不是e.document.url。