2012-03-01 53 views
3

我想使用CarrierWave上傳器來解壓縮包含可變數量文件的上傳zip文件,並將每個文件存儲在存儲zip文件的相同位置。這些文件應該在持有上傳器的模型中可用。將文件版本動態添加到Carrierwave上傳器

我只需要一個關於如何實現這一點的起點。

回答

0

不知道這是否與100%相關,但是我剛剛製作了一個接受zip文件的Gallery控制器,並將該zipfile的內容添加爲與Gallery模型關聯的Images

我通過使用Zippy gem以及一個擴展了StringIO的Home Roll FilelessFile類來完成此任務。

zipfile中的每個文件都保存爲單獨的carrierawave裝載的Image模型。

在你的情況我想你可以有一個File模型(和文件上傳)的belongs_to你的主力機型,而主要型號有has_many相對於File模型。

對於豁免控制器和「神奇」 fileless處理請參見:https://gist.github.com/1963073

注:請注意,我不使用CarrierWave用於處理壓縮文件上傳,我用CarrierWave保存裏面的文件zip文件。如果您還需要存儲zip文件,您可以創建ZipFile上傳器,並在主模型上隨同單個文件一起安裝zip文件,或者僅重新使用上傳器並將zipfile保存在主模型的字段中。

相關問題