【发布时间】:2016-08-02 18:16:49
【问题描述】:
在我的 Rails 4.2 应用程序中,我使用 RubyZIP 创建类似于以下的控制器操作:
class SomeController < ApplicationController
def some_action
file_stream = Zip::ZipOutputStream.write_buffer do |zip|
zip.put_next_entry "dir1/hello.txt"
zip.print "Hello"
zip.put_next_entry "dir2/hello.txt"
zip.print "World"
end
file_stream.rewind
respond_to do |format|
format.zip do
send_data file_stream.read, filename: "zip_file.zip"
end
end
end
end
在示例中,两个文件是动态创建和写入的,然后保存到 ZIP 文件中。
但是我怎样才能将已经存在的文件(!)也添加到 ZIP 文件中,例如我的/app/assets/documents 文件夹中的 PDF 文件?
这应该更容易实现,但我找不到任何文档。
感谢您的帮助。
【问题讨论】:
-
可以
zip.put_next_entry "filename"; zip << File.binread("file/path/and/filename")吗? -
成功了!谢谢,@matt!
标签: ruby-on-rails ruby rubyzip