我有一个用于上传base64音频的FileField
序列化程序,我注意到base64字符串不是以data:***开头的。如何确定上传文件的Mime类型?我需要文件扩展名mimetype()
class AudioField(serializers.FileField):
def to_internal_value(self, data):
if isinstance(data, basestring):
data = re.sub(r"^data\:.+base64\,(.+)$", r"\1", data)
# Try to base64 decode the data url.
try:
decoded = base64.b64decode(data)
except TypeError:
raise serializers.ValidationError(_('Not a valid file'))
file_name, file_ext, mime_type = self.i_need_the_file_extension_mimetype(decoded)
data = ContentFile(decoded, name=file_name)
return super(AudioField, self).to_internal_value(data)
我终于用^{} 排序了,多亏了@Ralf的指针
必需:^{}
相关问题 更多 >
编程相关推荐