在Django中保存Blob会创建一个大小为0的文件

时间:2018-11-29 22:06:15

标签: django python-3.x

在发布我之前,我使用ajax将音频blob发布到django

console.log(blob) 
//prints 
//Blob(262188) {size: 262188, type: "audio/wav"}
//size: 262188
//type: "audio/wav"
//__proto__: Blob

在Django视图内:

from django.core.files.storage import default_storage
from django.core.files.base import ContentFile

audio_data = request.FILES.get("recordedBlob", None)

print(type(audio_data)) #prints <class 'django.core.files.uploadedfile.InMemoryUploadedFile'>

print(audio_data.size) #prints 262188

path = default_storage.save('audio/' + '123' + '.wav', ContentFile(audio_data.read()))

但是当我在文件系统中打开音频文件时,它的大小为零字节。

有任何想法如何正确保存Blob吗?

1 个答案:

答案 0 :(得分:0)

我在打电话

print(len(audio_data.read()))

,似乎调用.read()清空数据。因此,取消这条线即可解决问题。