
将 post 请求获取的视频流转换为视频文件并下载
问题:
怎样使用 javascript 将通过 post 请求获取的视频文件流转换为视频文件并下载?
回答:
第一种方法:使用 blobs 和 url.createobjecturl
立即学习“Java免费学习笔记(深入)”;
responsedata: 'blob',
success: (response) => {
let bloburl = url.createobjecturl(response);
let a = document.createelement('a');
a.download = 'video.mp4';
a.href = bloburl;
a.click();
url.revokeobjecturl(bloburl);
}- 优点:在 ajax 回调函数中接收 blob 并将其转换为 bloburl,然后使用带 download 属性的 a 标签触发下载。
- 缺点:不支持移动端,不支持后台下载,需要页面保持打开。
第二种方法:使用表单下载
document.querySelector('form').submit();- 优点:支持移动端,支持后台下载。
- 缺点:不能携带 headers,可能需要通过临时授权 url 来解决。
结合两种方法:安全的移动端后台下载
通过结合两种方法,可以实现一种安全的、支持移动端的、支持后台下载的下载功能:
- 使用表单下载设置临时授权 url。
- 使用 post 请求带有临时授权 url 的表单。
- 在响应回调中使用 blobs 和 url.createobjecturl 转换并下载。










