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 }