def post(self): if not self._validate_captcha(): self.write("Wrong captcha") self.finish() desc = tornado.escape.xhtml_escape(self.get_argument("description")) reason = None # Todo: Refactor, extract method if len(desc) < options.desc_min_len: reason = self._ERRORS['EDESCTOOSHORT'] % options.desc_min_len elif len(desc) > options.desc_max_len: reason = self._ERRORS['EDESCTOOLONG'] % options.desc_max_len if reason is not None: self.render("uploadfailure.html", reason=reason) # All right! for f in self.request.files['payload']: local_fileid = self._get_sha1_sum(f['body']) db_fileid, filesize = self._check_file_existence(local_fileid) if db_fileid is None: filesize = self._save_file_to_disk(f, local_fileid) db_fileid = self._save_file_to_db(f, local_fileid, filesize) reference, remove_token = self._save_upload_to_db(f, db_fileid, desc) filesize, units = tools.format_filesize(filesize) logging.debug("New reference created: %s" % reference) self.render("uploadsuccess.html", reference=reference, filesize=filesize, units=units, remove_token=remove_token)
def get(self, reference): logging.debug("Requesting file %s" % reference) if not tools.validate_reference(reference): raise tornado.web.HTTPError(404) filename, filesize, description, db_uploadid = \ self._locate_upload(reference) if filename is None or filesize is None or description is None: raise tornado.web.HTTPError(404) filesize, units = tools.format_filesize(filesize) reference = tornado.escape.xhtml_escape(reference) self.render("fileinfo.html", filename=filename, filesize=filesize, units=units, reference=reference, description=description)