Exemplo n.º 1
0
    def deserialize(self, node, value):
        if is_file_type(value):
            return {
                'file': value,
                'filename': basename(value.name),
                'type': None}

        elif isinstance(value, FieldStorage):
            return {
                'file': value.file,
                'filename': value.filename,
                'type': 'image/png'}

        else:
            raise Invalid(node, _('Invalid file.'))
Exemplo n.º 2
0
def find_mimetype(filename=None, header_or_file=None):
    if is_file_type(header_or_file):
        header_or_file.seek(0)
        header = header_or_file.read(guess_mimetype_with_data.min_header_size)
    else:
        header = maybe_bytes(header_or_file)

    mimetype = None
    if header is not None:
        mimetype = guess_mimetype_with_data(header)

    if not mimetype:
        filename = maybe_string(filename)
        if filename:
            mimetype, encoding = mimetypes.guess_type(filename, strict=True)
            if not mimetype:
                mimetype, encoding = mimetypes.guess_type(filename, strict=False)

    return maybe_string(mimetype)