使用Post请求获取视频文件,如何用JavaScript转换成文件并下载?
用Post请求获取视频文件,js如何转换成文件并下载?
当使用Post请求获取到视频文件流时,如何利用JavaScript将它转换成视频文件并下载保存是一个颇具挑战性的问题。许多方法都宣告失败。
解决方案 1:使用 Blob 响应
采用 responseData: 'blob' 配置可以使ajax在回调中收到blob。利用URL.createObjectURL,将blob转换成bloburl。最后,创建一个a标签并设置download属性来触发下载。此方法的优点在于可以在ajax回调中就收到blob,便于后续处理。
然而,这种方式的缺点是:
- 不支持移动端
- 不支持后台下载,需要页面持续打开
解决方案 2:通过 Form Target
为了克服上述缺点,我们可以使用Form Target机制来触发浏览器的默认下载功能。此方案的缺点是无法携带headers。为了解决这一问题,可以采用临时授权URL的方式。
最终解决方案
综合上述方案,我们可以实现一个兼具以下特性的下载功能:
- 安全
- 支持移动端
- 支持后台下载
以上就是使用Post请求获取视频文件,如何用JavaScript转换成文件并下载?的详细内容,更多请关注硕下网其它相关文章!