Rails Ziping文件 – 读取二进制数据

我正在使用rubyzip库来压缩文件。
但我遇到了问题。
我试试:

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.jpg的大小为11913字节 ,但在存档中有一个文件test.jpg ,大小为11551字节 。 使用test.rtf也有相同的情况。

有什么建议?

我怀疑你的问题可能是IO.read() 。 我不太确定它能正确处理二进制数据。

我会尝试这个,看看它是否解决了问题:

 File.open(filename, "rb") { |f| f.read } 
Interesting Posts