docs: def copy_file_upload(self, targetdir):
          '''
              Copies the currently valid file upload into the given directory.
              If possible, the content is un-archived in the target directory.
          '''
          assert(self.file_upload)
          # unpack student data to temporary directory
          # os.chroot is not working with tarfile support
          tempdir = tempfile.mkdtemp()
          try:
              if zipfile.is_zipfile(self.file_upload.absolute_path()):
                  f = zipfile.ZipFile(self.file_upload.absolute_path(), 'r')
                  f.extractall(targetdir)
              elif tarfile.is_tarfile(self.file_upload.absolute_path()):
                  tar = tarfile.open(self.file_upload.absolute_path())
                  tar.extractall(targetdir)
                  tar.close()
              else:
                  # unpacking not possible, just copy it
                  shutil.copyfile(self.file_upload.absolute_path(),
                                  targetdir + "/" + self.file_upload.basename())
          except IOError:
              logger.error("I/O exception while accessing %s." %
                           (self.file_upload.absolute_path()))
              pass
          except (UnicodeEncodeError, NotImplementedError)  as e:
              # unpacking not possible, just copy it
              shutil.copyfile(self.file_upload.absolute_path(),
                              targetdir + "/" + self.file_upload.basename())
              pass