2012-05-02 6 views
1

私はファイルを圧縮するためにrubyzipライブラリを使用しています。
しかし、私は問題に遭遇します。
私が試してみてください。Rails Zipingファイル - バイナリデータを読み取る

Zip::ZipOutputStream.open('c:/sites/efiling2/test.zip') do |zos| 
     zos.put_next_entry("test.rtf") 
     zos.write IO.read('c:/sites/efiling2/test.rtf') 
     zos.put_next_entry("test.jpg") 
     zos.write IO.read('c:/sites/efiling2/test.jpg') 
    end 

しかし、writeメソッドは、元のファイルのサイズを制限します。例えば、私のソースファイルtest.jpg11913バイトの大きさを持っていますが、アーカイブにサイズ11551バイトでファイルtest.jpgがあります。 test.rtfには同じ状況があります。

提案がありますか?

答えて

1

あなたの問題はIO.read()と思われます。私はバイナリデータを適切に処理しているかどうかはわかりません。

私が代わりにこれを試してみて、それが問題を修正するかどうかを確認します:

File.open(filename, "rb") { |f| f.read } 
+0

おかげで多く、それが動作します! –

+0

ありがとうございました。なぜ私のイメージが欠けていて、あなたのソリューションが私の問題を解決したのかを理解するために、これをあらゆる角度で試してみました! –

関連する問題