简介
将来自 Web 服务的文件下载集成到 AngularJS 应用程序中由于浏览器限制,可能会带来挑战。本文探讨了 AngularJS 中处理二进制文件下载的一系列方法。
简单下载方法
对于基本文件下载,您可以简单地使用浏览器支持的文件路径:
$scope.downloadFile = function(downloadPath) { window.open(downloadPath, '_blank', ''); }
Ajax 二进制下载方法
要通过 Ajax 执行二进制文件下载,您可以在 Chrome、Internet Explorer、Firefox 和 Safari 等浏览器中使用此脚本。请注意,navigator.msSaveBlob 仅在 Internet Explorer 11 中单独工作。
$scope.downloadFile = function(httpPath) { // ... (Code omitted for brevity) ... try { // ... (Code omitted for brevity) ... if (navigator.msSaveBlob) navigator.msSaveBlob(blob, filename); else { // ... (Code omitted for brevity) ... } } catch (ex) { // ... (Code omitted for brevity) ... } if (!success) { // ... (Code omitted for brevity) ... } }
用法:
var downloadPath = "/files/sample.pdf"; $scope.downloadFile(downloadPath);
必需的 Web API 响应标头
为了确保正确的文件下载,您的 Web API 方法应返回以下标头:
结论
本文提供了几种在 AngularJS 应用程序中管理从 Web API 服务下载文件的方法。根据特定的浏览器功能和项目的要求,选择最适合您需求的方法。
以上是如何使用 AngularJS 从 ASP.NET Web API 下载文件?的详细内容。更多信息请关注PHP中文网其他相关文章!