J'essaie d'extraire un fichier zip téléchargé et de stocker son contenu dans la base de données, une entrée par fichier. La bibliothèque de rubyzip n'a presque aucune documentation utile.Comment obtenir le contenu d'un fichier compressé à l'aide de la bibliothèque rubyzip?
Il existe une table d'actifs avec clé: chaîne (nom de fichier) et données: binaire (contenu du fichier).
J'utilise la bibliothèque rubyzip, et ont fait jusqu'à ce que:
Zip::ZipFile.open(@file_data.local_path) do |zipfile|
zipfile.each do |entry|
next if entry.name =~ /__MACOSX/ or entry.name =~ /\.DS_Store/ or !entry.file?
asset = self.assets.build
asset.key = entry.name
asset.data = ?? # what goes here?
end
end
Comment puis-je mettre les données à partir d'un ZipEntry? Dois-je utiliser un fichier temporaire?
Merci. 10 points pour l'effort! – jcoby