我有一个视频文件的href链接,可以是任何格式,如mp4,3gp等。
当我点击该链接时,它会在同一个标签页中打开。
当我将目标属性更改为“_blank”时,它会在新选项卡中打开视频。
但是,当我按住Ctrl键单击该链接时,文件开始下载。
我怎么能强制下载文件而不是打开它?我正在使用带有Electron的角度4来制作桌面应用程序,所以当点击链接时我不希望出现任何故障。我该怎么做?
我尝试过的事情:
1.更改锚标记的目标属性
2.使用锚标记的下载属性。
到目前为止,对我来说没有任何作用。
提前致谢。
更新:
使用此Web应用程序作为电子应用程序会出现CORS错误。我正在使用chrome中的扩展来允许CORS。如何在电子应用程序中允许CORS?
我尝试过JSONP,但API不允许使用JSONP。我正在使用第三方API,因此无法修改服务器端。
答案 0 :(得分:0)
我认为这是一个Electron的事情,处理下载比平常更复杂,尽管你也获得了制作原生应用程序所带来的一些自由。
有一些辅助库,可以使它更简单,就像electron-dl:https://www.npmjs.com/package/electron-dl
还有其他一些人喜欢它,所以在决定之前进行搜索。我喜欢这个,因为它很简单,允许用户询问目标目录,或者提供两种方式供选择。
修改强> 来自OP的更多信息显示它是一个cors问题,并且cors标题无法添加到第三方服务中,使它更复杂但有些想法:
使用electron-fetch在电子后端创建下载功能 - 这应该绕过角色保护。
对于网络应用,请在您托管该应用的同一域上添加一个简单的代理服务器,以便下载文件。
答案 1 :(得分:0)
经过大量研究,我发现提取和下载youtube生成的链接应该在同一台机器上。由于IP和cookie问题,在两台不同的机器上提取和下载将永远不会起作用。
但是,我发现了这个问题的黑客攻击。在youtube-dl生成的链接结尾处附加 '&title='~${actual_title_of_file}
。但是,某些链接必须手动下载。
参考:youtube-dl issue #5960