Мне нужно 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
очень удобен, но, к сожалению, он предназначен для изображения
- Проверьте официальный питон документы . Не найдено
video
тип
- Проверка
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
?