我想在上传到我的Rails应用程序的ZIP文件中提取文件。 ZIP文件中的文件将存储在数据库中。
我想在我的操作中打开ZIP文件,而不必先将文件保存到文件夹 - 我想用rubyzip打开multipart / form-data流。
看起来像rubyzip的ZipFile.open只接受文件名 - 而不是IO流。
我需要在rubyzip中更改什么,允许我以流的形式打开zip文件,如下所示:
Zip::ZipFile.open(params["zip_file"]) do |zip_file|
...
end
感谢。 约尔格
答案 0 :(得分:4)
我打算给你一些你没有要求的建议。
我强烈建议您不要在操作中执行此操作,因为只要执行提取,它就会阻止与该HTTP请求关联的Rails进程。您的用户界面将无响应,如果有足够多的用户同时执行此操作(您正在限制文件上传大小,对吗?)那么您实际上已经针对您的应用程序进行了Denial of Service攻击。
答案 1 :(得分:4)
使用
Zip::ZipFile.open(params["zip_file"].path) do |zip_file|
...
end
应该有用。