gpt4 book ai didi

ruby-on-rails - 如何在 Ruby on Rails 中解压缩文件?

转载 作者:数据小太阳 更新时间:2023-10-29 06:23:24 24 4
gpt4 key购买 nike

我正在使用 Ruby on Rails 将文件上传到服务器

通常,它是一个文本文件,我将它保存在模型中作为提交 ActiveRecord 中的"file"字段以及其他字段,例如提交标题等。

但是,用户也可以提交 zip 文件。在这种情况下,应该解压缩 zip 文件,并且应该为 zip 中的每个文件创建一个新的提交,其中包含相同的文本字段,但当前文件。

我怎样才能做到这一点?

我查看了网上的解压缩示例,但大多数使用目录将文件解压缩到。我不确定我是否需要它,因为在 SubmissionsController 的当前创建方法中,接收到一个文件对象,并且我假设在调用 Submission save 方法时自动生成保存文件的路径。所以我在想,也许我应该在内存中解压缩 zipfile 以获取文件对象数组,然后为每个文件对象创建一个新的提交,但字段相同,然后让 ActiveRecord 在将它们保存到时为每个文件生成文件路径数据库。我在这里可能是错的,因为我是 Rails 和 Ruby 的新手。

最佳答案

我会使用 rubyzip gem .具体这部分:https://github.com/rubyzip/rubyzip/blob/master/lib/zip/filesystem.rb

它在内存中创建一个人工文件系统来镜像 zip 文件的内容。这是一个基于文档示例的示例:

Rubyzip 界面改变了!!!无需删除类名称中的“zip/zip”和 Zip 前缀。

require 'zip'

Zip::File.open("my.zip") do |zipfile|
zipfile.each do |file|
# do something with file
end
end

在您的情况下,只需将上传的临时文件的名称放在示例中 my.zip 的位置,您就可以遍历内容并对它们执行常规操作。

关于ruby-on-rails - 如何在 Ruby on Rails 中解压缩文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9204423/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com