angular-file-saver 使用 FileSaver 下载 base64 文件

angular-file-saver download base64 file using FileSaver

我正在尝试使用 angular-file-saver 下载 base64 文件。

我可以在没有 angular-file-saver 的情况下做到这一点,只需这个 html 标记:

<a ng-href="data:{{document.mimeType}};base64,{{document.base64Code}}" target="_blank" download>Download Single Document</a>

我现在还有其他需求可以用 angular-file-saver 来满足,这让我过渡到使用 FileSaver 来实现。现在我想使用文件保护程序实现相同的下载。我的 html 加价是:

<a ng-href="#" ng-click="downloadFile()">Download with File Saver</a>

然后我像这样构建我的 downloadFile 函数:

function downloadFile () {
        var data = new blob([$scope.document.base64Code], {type: $scope.document.mimeType+';base64'});
        var config = {
            data: data,
            filename: $scope.documentSaveAs ? $scope.documentSaveAs : $scope.document.FileName
        }
        fileSaver.saveAs(config);
    }

我的问题是,当我尝试打开文件时,文件下载后已损坏。

我假设我通过连接“;base64”对类型对象做错了什么。我已经开始深入研究 angular-file-saver.bundle.js 但非常感谢任何帮助。我做错了什么?

我最终深入研究了 BLOB 并遇到了这个 Whosebug 以使其工作。 Creating a Blob from a base64 string in JavaScript