Exemplo n.º 1
0
    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)
Exemplo n.º 2
0
    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)
Exemplo n.º 3
0
    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)