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

发布于 2021-02-01 10:30:51

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

关注者
0
被浏览
59
1 个回答
  • 面试哥
    面试哥 2021-02-01
    为面试而生,有面试问题,就找面试哥。

    您可以使用进行类似的操作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()释放它们。当文档被卸载时,浏览器将自动释放这些文件。但是,为了获得最佳性能和内存使用率,如果可以安全地显式卸载它们,则应该这样做。

    资料来源:MDN



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看