def manage_http_upload(self, url, is_preview=0, REQUEST=None): """ Upload image from http-server """ if self.wl_isLocked(): raise ResourceLockedError("File is locked via WebDAV") if is_preview: url = urllib.quote(url, '/:') file = urllib.urlopen(url) file = HTTPUpload(file) content_type = self._get_content_type(file, file.read(100), self.id, self.prev_content_type) file.seek(0) self._register() # Register with TM try: backup = REPOSITORY_EXTENSIONS in (MIMETYPE_APPEND, MIMETYPE_REPLACE) and \ self.prev_filename and self.prev_content_type != content_type new_fn = self._get_ufn(self.prev_filename, content_type=content_type, backup=backup) self._update_data(file, self._temp_fsname(new_fn)) finally: self._dir__unlock() self.prev_filename = new_fn self.prev_content_type = content_type self._initPreview() else: super(ExtImage, self).manage_http_upload(url) if REQUEST is not None: return self.manage_main(self, REQUEST, manage_tabs_message='Upload complete.')
def manage_http_upload(self, url, is_preview=0, REQUEST=None): """ Upload image from http-server """ if self.wl_isLocked(): raise ResourceLockedError("File is locked via WebDAV") if is_preview: url = urllib.quote(url, "/:") file = urllib.urlopen(url) file = HTTPUpload(file) content_type = self._get_content_type(file, file.read(100), self._get_zodb_id(), self.prev_content_type) file.seek(0) self._register() # Register with TM try: backup = self.prev_filename and self._changed(self.prev_content_type, content_type) new_fn = self._get_ufn(self.prev_filename, content_type=content_type, backup=backup) self._update_data(file, self._temp_fsname(new_fn)) finally: self._dir__unlock() self.prev_filename = new_fn self.prev_content_type = content_type self._initPreview() else: super(ExtImage, self).manage_http_upload(url) if REQUEST is not None: return self.manage_main(self, REQUEST, manage_tabs_message="Upload complete.")
def manage_file_upload( self, file="", content_type="", is_preview=0, create_prev=NO_PREVIEW, maxx="", maxy="", ratio=0, REQUEST=None ): """ Upload image from file handle, Pdata, or local directory """ if self.wl_isLocked(): raise ResourceLockedError("File is locked via WebDAV") if is_preview: if isinstance(file, str): file = open(file, "rb") elif isinstance(file, Pdata): file = pdata(file) maxx, maxy = self._formatDimensions(maxx, maxy) if create_prev == UPLOAD_RESIZE and maxx != 0 and maxy != 0: self._register() # Register with TM try: new_fn = self._get_ufn(self.prev_filename, content_type="image/jpeg") self._update_data(file, self._temp_fsname(new_fn)) finally: self._dir__unlock() self._createPreview(new_fn, new_fn, maxx, maxy, ratio) else: if content_type: file = HTTPUpload(file, content_type) content_type = self._get_content_type(file, file.read(100), self._get_zodb_id(), self.prev_content_type) file.seek(0) self._register() # Register with TM try: backup = self.prev_filename and self._changed(self.prev_content_type, content_type) new_fn = self._get_ufn(self.prev_filename, content_type=content_type, backup=backup) self._update_data(file, self._temp_fsname(new_fn)) finally: self._dir__unlock() self.prev_filename = new_fn self.prev_content_type = content_type self._initPreview() else: super(ExtImage, self).manage_file_upload(file, content_type) if create_prev == GENERATE: maxx, maxy = self._formatDimensions(maxx, maxy) if maxx != 0 and maxy != 0: self._register() # Register with TM try: new_fn = self._get_ufn(self.prev_filename, content_type="image/jpeg") self._createPreview(self.filename, new_fn, maxx, maxy, ratio) finally: self._dir__unlock() if REQUEST is not None: return self.manage_main(self, REQUEST, manage_tabs_message="Upload complete.")
def manage_file_upload(self, file='', content_type='', is_preview=0, create_prev=NO_PREVIEW, maxx='', maxy='', ratio=0, REQUEST=None): """ Upload image from file handle or local directory """ if self.wl_isLocked(): raise ResourceLockedError("File is locked via WebDAV") if is_preview: if isinstance(file, str): file = open(file, 'rb') maxx, maxy = self._formatDimensions(maxx, maxy) if create_prev == UPLOAD_RESIZE and maxx != 0 and maxy != 0: self._register() # Register with TM try: new_fn = self._get_ufn(self.prev_filename, content_type='image/jpeg') self._update_data(file, self._temp_fsname(new_fn)) finally: self._dir__unlock() self._createPreview(new_fn, new_fn, maxx, maxy, ratio) else: if content_type: file = HTTPUpload(file, content_type) content_type = self._get_content_type(file, file.read(100), self.id, self.prev_content_type) file.seek(0) self._register() # Register with TM try: backup = REPOSITORY_EXTENSIONS in (MIMETYPE_APPEND, MIMETYPE_REPLACE) and \ self.prev_filename and self.prev_content_type != content_type new_fn = self._get_ufn(self.prev_filename, content_type=content_type, backup=backup) self._update_data(file, self._temp_fsname(new_fn)) finally: self._dir__unlock() self.prev_filename = new_fn self.prev_content_type = content_type self._initPreview() else: super(ExtImage, self).manage_file_upload(file, content_type) if create_prev == GENERATE: maxx, maxy = self._formatDimensions(maxx, maxy) if maxx != 0 and maxy != 0: self._register() # Register with TM try: new_fn = self._get_ufn(self.prev_filename, content_type='image/jpeg') self._createPreview(self.filename, new_fn, maxx, maxy, ratio) finally: self._dir__unlock() if REQUEST is not None: return self.manage_main(self, REQUEST, manage_tabs_message='Upload complete.')