'Extracts a zip file.
If a \'file\' ends with \'/\', then it is a directory and we must create it.
Else, open a file for writing and meta pipe the contents zipfile to the new file.'

def extract(self):

    if ARCHIVE_UPLOAD_TEMPDIR.get():
        directory = tempfile.mkdtemp(dir=ARCHIVE_UPLOAD_TEMPDIR.get())
    else:
        directory = tempfile.mkdtemp()
    (dirs, files) = self._filenames()
    self._create_dirs(directory, dirs)
    self._create_files(directory, files)
    return directory
