Files
mayan-edms/apps/sources/compressed_file.py
2011-08-12 02:13:23 -04:00

25 lines
697 B
Python

import zipfile
from django.core.files.uploadedfile import SimpleUploadedFile
class NotACompressedFile(Exception):
pass
class CompressedFile(object):
def __init__(self, file_object):
self.file_object = file_object
def children(self):
try:
# Try for a ZIP file
zfobj = zipfile.ZipFile(self.file_object)
filenames = [filename for filename in zfobj.namelist() if not filename.endswith('/')]
return (SimpleUploadedFile(name=filename, content=zfobj.read(filename)) for filename in filenames)
except zipfile.BadZipfile:
raise NotACompressedFile
#def close(self):
# self.file_object.close()