当前位置: 首页 > 工具软件 > rubyzip > 使用案例 >

利用rubyzip导出zip文件

卫梓
2023-12-01
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
 类似资料: