Javascript 如何使用链接强制下载Angularjs中的PDF/图像/视频/音频
我想强制下载文件。但在新的chrome更新中,如果是图像/视频/音频/PDF文件,文件将在浏览器上打开而不是下载 HTML: 注意:要检查此问题,您必须更新您的google chrome(版本66.0.3359.117(官方版本)(64位))。Javascript 如何使用链接强制下载Angularjs中的PDF/图像/视频/音频,javascript,html,angularjs,google-chrome,download,Javascript,Html,Angularjs,Google Chrome,Download,我想强制下载文件。但在新的chrome更新中,如果是图像/视频/音频/PDF文件,文件将在浏览器上打开而不是下载 HTML: 注意:要检查此问题,您必须更新您的google chrome(版本66.0.3359.117(官方版本)(64位))。 我怎样才能做到这一点。我已经检查了stackoverflow.com上的几乎所有回复,但是没有解决我的问题的方法,因为它是在新的chrome更新下发布的。我感谢每一个回复。谢谢 由于download属性只适用于同一来源,我认为您可能需要使用JS下载数据,
我怎样才能做到这一点。我已经检查了stackoverflow.com上的几乎所有回复,但是没有解决我的问题的方法,因为它是在新的chrome更新下发布的。我感谢每一个回复。谢谢 由于download属性只适用于同一来源,我认为您可能需要使用JS下载数据,创建Blob,然后下载它。但这似乎不是一个好主意,因为实现/跨浏览器关注点需要复杂度/时间。或者,您可以在服务器上创建一个代理,以便下载,这在我看来更可取。在较旧版本的chrome中,相同的代码可以将所有类型的文件下载到浏览器中,但在较新版本的chrome中,打开文件。但是我的要求很明确,不打开就直接下载每个文件。你知道关于这个的确切发行说明吗?我建议在同一个域上放一个PDF,看看它是否有效,如果有效,那么你可以设置一个S3的代理端点。我已经提到了chrome的确切版本。我也尝试过将pdf放在同一个域中,但仍然不起作用。是的,下载属性仅适用于某些浏览器,如chrome。
<a href="" ng-click="downloadFile()">Click to download file</a>
$scope.downloadFile = function () {
fileInfo = {
path: collection.file_path,
file_name: collection.file_name
};
payOutService.getSignedUrlFromS3ByPath(fileInfo).success(function (response) {//response is simply file link
var link = document.createElement("a");
link.download = collection.file_name;
link.href = response;
link.click();
}
});
};