rubin på skinner - Rubyzip problemer på Windows

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg bruger Rubyzip til at pakke ud filer, der uploades af brugeren. Filen indeholder en flok billeder, som pakkes ud og lægges i en mappe. Dette virker fint på en Mac, men i Windows vil den ikke pakke ud zip-filen . Her er den model jeg bruger:


require "zip/zip"
class Photo < ActiveRecord::Base
  validates\_presence\_of :image\_file\_name, :message => "Er is geen bestand bijgevoegd!"

  belongs\_to :album

  has\_attached\_file :image, :styles => {
  :original => ["1024x1024>", :jpg],
  :medium => "300x250#",
  :thumb => "150x100#"
  }, :url => "/uploads/photos/:id/:style.:extension"

  def zip?
   image.content\_type == "application/zip"
  end

  def save\_photo
   if zip?
    extract\_zip
    true
    else
    self.save
   end
  end

  def extract\_zip
  Zip::ZipFile.foreach(image.queued\_for\_write[:original].path) do |entry|
   next if entry.name =~ /\_\_MACOSX/ or entry.name =~ /.DS\_Store/ or !entry.file?
   filename = entry.name
   basename = File.basename(filename)

   tempfile = Tempfile.new(basename)
   tempfile.binmode
   tempfile.write(entry.get\_input\_stream.read)

  photo = Photo.create(:image => tempfile, :album\_id => album\_id)
end
end
end


Fordi det fungerer fint på en Mac, tror jeg, det er den måde, som Windows lynlåser en fil. Måske noget at gøre med header strukturen eller noget? Enhver hjælp er meget værdsat!

Bedste reference