一尘不染

如何使用AngularJS或Javascript提供文件下载?

javascript

我在隐藏的文本区域中有一些文本。单击一个按钮后,我希望提供文本作为.txt文件下载。是否可以使用AngularJS或Javascript?


阅读 316

收藏
2020-05-01

共1个答案

一尘不染

您可以使用进行类似的操作Blob

<a download="content.txt" ng-href="{{ url }}">download</a>

在您的控制器中:

var content = 'file content for example';
var blob = new Blob([ content ], { type : 'text/plain' });
$scope.url = (window.URL || window.webkitURL).createObjectURL( blob );

为了启用URL:

app = angular.module(...);
app.config(['$compileProvider',
    function ($compileProvider) {
        $compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|ftp|mailto|tel|file|blob):/);
}]);

请注意

每次调用createObjectURL()时,都会创建一个新的对象URL,即使您已经为同一对象创建了一个URL。当不再需要它们时,必须通过调用URL.revokeObjectURL()释放它们。当文档被卸载时,浏览器将自动释放这些文件。但是,为了获得最佳性能和内存使用率,如果可以安全地显式卸载它们,则应该这样做。

2020-05-01