我想使用CarrierWave上传器解压缩包含可变数量文件的上传zip文件,并将每个文件存储在存储zip文件的同一位置。这些文件应该在拿着上传器的模型中可用。
我只需要一个如何实现这一点的起点。
答案 0 :(得分:0)
不确定这是100%相关,但我刚刚建立了一个接受zip文件的Gallery
控制器,并将此zipfile的内容添加为Images
,与{{1}相关联} model。
我通过使用Zippy gem以及扩展StringIO的归位滚动FilelessFile类来完成此任务。
zipfile中的每个文件都保存为单独的carrierawave挂载Gallery
模型。
在您的情况下,我猜您可以拥有一个Image
模型(以及一个文件上传器)File
您的主模型,并且您的主模型与{belongs_to
关系has_many
1}}模型。
对于控制器的免除和“魔术”无文件处理,请参阅:https://gist.github.com/1963073
注意:请注意,我不使用CarrierWave处理zipfile上传,我使用CarrierWave将文件保存在zipfile中。如果您还需要存储zip文件,您可以创建一个ZipFile上传器并在主模型上安装zipfile以及单个文件,或者只是重复使用File
上传器并将zipfile保存在主模型的字段中。