Реализация Base64VideoField Django REST - PullRequest
0 голосов
/ 21 апреля 2019

Мне нужно POST двоичный файл для моей системы. Для этого я должен преобразовать его в base64. Я уже видел пример парсинга pdf файла в систему и считаю, что mp4 не должно сильно отличаться.

Мои попытки:
1. Проверьте с помощью Base64ImageField

class Base64ImageField(Base64FieldMixin, ImageField):
    """
    A django-rest-framework field for handling image-uploads through raw post data.
    It uses base64 for en-/decoding the contents of the file.
    """
    ALLOWED_TYPES = (
        "jpeg",
        "jpg",
        "png",
        "gif"
    )
    INVALID_FILE_MESSAGE = _("Please upload a valid image.")
    INVALID_TYPE_MESSAGE = _("The type of the image couldn't be determined.")

    def get_file_extension(self, filename, decoded_file):
        extension = imghdr.what(filename, decoded_file)
        extension = "jpg" if extension == "jpeg" else extension
        return extension

imghdr очень удобен, но, к сожалению, он предназначен для изображения

  1. Проверьте официальный питон документы . Не найдено video тип
  2. Проверка opencv. Он показывает мне возможность открывать, но я хочу просто проверить расширение. Хотя opencv сможет воспроизвести этот файл. Это не означает, что это поддерживаемое расширение для веб-браузера.

Как есть:

class Base64VideoField(Base64FileField):
    ALLOWED_TYPES = ['mp4', ]

    def get_file_extension(self, filename, decoded_file):
        # TODO: Do something that validate the user input!
        return 'mp4'

Вопрос:
Как правильно реализовать Base64VideoField?

1 Ответ

0 голосов
/ 21 апреля 2019

Вы можете использовать Base64FileField из той же библиотеки и обновлять ALLOWED_TYPES для видеофайлов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...