【发布时间】:2022-05-19 22:06:56
【问题描述】:
我正在尝试将通过 ajax 发送的 blob 保存为 python 中的文件。之前经历过Python: How do I convert from binary to base 64 and back?
class SaveBlob(APIView):
def post(self, request):
vid = open("file.webm", "wb")
video_stream = request.FILES['blob'].read()
video_stream = struct.pack(video_stream).encode('base64')
# vid.write(video_stream.decode('base64'))
vid.write(video_stream)
vid.close()
return Response()
结果为@987654323@
只需使用此vid.write(video_stream.decode('base64'))
而不使用struct.pack 即可保存文件,但是当我打开视频时,它会导致无法确定流的类型。
ajax 调用是这样的,但我猜它看起来不错。
function call_ajax(request_type,request_url,request_data) {
var data_vid = new FormData();
console.log(request_url);
data_vid.append('blob', request_data);
console.log(request_data);
var data= [];
try{
$.ajax({
type: request_type,
url: request_url,
data:data_vid,
cors:true,
processData: false,
contentType: false,
async:false,
beforeSend: function(xhr) {
xhr.setRequestHeader('X-CSRFToken',Cookies.get('csrftoken'))
},
success: function(response){
data =response;
}
});
}catch(error){
console.log(error);
}
return data;
}
对此的任何帮助将不胜感激。欢迎任何关于任何缺陷或可能原因的建议。
【问题讨论】:
标签: javascript python