使用 JS 下载文件按钮

Ale*_*zpm 3 javascript api angularjs

我需要生成链接,然后一步下载链接。我有一个用于生成和下载的按钮,一旦被点击,我必须调用 api 来生成 pdf 的下载链接,然后让浏览器打开带有保存项目的弹出窗口。

            <button type="button" class="btn btn-success btn-block" ng-click="generateAndDownloadPdf()"><i
                class="fa fa-plus"></i>Generate and download invoice</span></button>
Run Code Online (Sandbox Code Playgroud)

我的 js 控制器函数看起来像:

            $scope.generateAndDownloadPdf = function(){
             //getting download url from api
            api.events.invoice.download($stateParams.eventId, $stateParams.speakerId).then(function(data){
                console.log(data)
                //give url to user

            });

        }
Run Code Online (Sandbox Code Playgroud)

我知道一旦我有了下载 url,我就可以使用这个 html 代码,但是我想知道我是否可以为用户一键完成所有操作。

            <a
           target="_self"
           href="download.url"
           download="file.pdf">
            <button type="button" class="btn btn-success btn-block" ng-click=""><i
                    class="fa fa-plus"></i>Download Invoice</span></button>
        </a>
Run Code Online (Sandbox Code Playgroud)

谢谢你们!

小智 5

你可以在你的方法“generateAndDownloadPdf”中用这种方式强制下载,

var anchor = document.createElement('a');
anchor.href = data.downloadUrl;
anchor.target = '_blank';
anchor.download = data.fileName;
anchor.click();
Run Code Online (Sandbox Code Playgroud)