使用Post请求获取视频文件,如何用JavaScript转换成文件并下载?

使用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转换成文件并下载?的详细内容,更多请关注硕下网其它相关文章!