利用rubyzip导出zip文件

def compress
 if File.exist?("#{RAILS_ROOT}/public/photos.zip")
      File.delete("#{RAILS_ROOT}/public/photos.zip")
    end
 Zip::ZipFile.open "#{RAILS_ROOT}/public/photos.zip", Zip::ZipFile::CREATE do |zip|
     add_to_file(file_path,zip)
end
 def add_file_to_zip(file_path, zip)
  if File.directory?(file_path)
     Dir.foreach(file_path) do |sub_file_name|
      add_file_to_zip("#{file_path}/#{sub_file_name}", zip) unless sub_file_name == '.' or sub_file_name == '..'
    end
  else
    zip.add(file_path, file_path)
  end
 end


  def compress
    if File.exist?("#{RAILS_ROOT}/public/photos.zip")
      File.delete("#{RAILS_ROOT}/public/photos.zip")
    end
    Zip::ZipFile.open "#{RAILS_ROOT}/public/photos.zip", Zip::ZipFile::CREATE do |zip|
      add_file_to_zip(zip)
    end
    send_file("#{RAILS_ROOT}/public/photos.zip", :disposition=>'inline', :filename=>'photos.zip')

  end

  def add_file_to_zip(zip)
    @last_test=AllTest.find(:last)
    @sign_ups=SignUp.find(:all, :conditions => ['all_test_id=?', @last_test.id])
    @sign_ups.each do |sub_file_name|
      if File.exist?("public/photos/#{sub_file_name.photo_url}")
        zip.add("photos/#{sub_file_name.student_no}.jpg", "public/photos/#{sub_file_name.photo_url}") unless sub_file_name.photo_url == '.' or sub_file_name.photo_url == '..'
      end
    end
  end
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值