Angularjs 如何使用http下载angular js中的二进制文件
我想使用$http下载LAOD exe文件,它在我控制台数据时显示给我,但我无法下载它Angularjs 如何使用http下载angular js中的二进制文件,angularjs,Angularjs,我想使用$http下载LAOD exe文件,它在我控制台数据时显示给我,但我无法下载它 $http({ url: url, method: "GET", headers: { 'Content-type': 'application/json' } }).success(function (data, status, headers, config) { console.log(data
$http({
url: url,
method: "GET",
headers: {
'Content-type': 'application/json'
}
}).success(function (data, status, headers, config) {
console.log(data);
window.open(objectUrl);
}).error(function (data, status, headers, config) {
//upload failed
});
任何帮助都将不胜感激。您可以使用响应类型,如responseType:“arraybuffer” 使用Blob和pass类型“application/binary”,并创建一个链接来下载它
$http({
url: url,
method: "GET",
headers: {
'Content-type': 'application/json'
}
}).success(function (data, status, headers, config) {
console.log(data);
window.open(objectUrl);
}).error(function (data, status, headers, config) {
//upload failed
});
给定的代码将帮助您下载exe文件以及检查
浏览器兼容性
如果我的文件太大怎么办?当我们使用blob时,它会被加载到浏览器内存中吗?为什么不直接作为blob得到响应呢?e、 g.
响应类型:“blob”
->
var ieEDGE = navigator.userAgent.match(/Edge/g);
var ie = navigator.userAgent.match(/.NET/g); // IE 11+
var oldIE = navigator.userAgent.match(/MSIE/g);
var blob = new window.Blob([data.data], { type: 'application/x-msdownload' });
if (ie || oldIE || ieEDGE) {
var fileName="filename"+'.exe';
window.navigator.msSaveBlob(blob, fileName);
}
else {
var file = new Blob([ data.data ], {
type : 'application/x-msdownload'
});
var fileURL = URL.createObjectURL(file);
var a = document.createElement('a');
a.href = fileURL;
a.target = '_blank';
a.download = "filename"+'.exe';
document.body.appendChild(a);
a.click();
}
//Successfully Downloaded