使用JS实现下载文件按钮

3

我需要一次性生成链接并下载文件。我有一个用于生成和下载的按钮,一旦点击了按钮,就需要调用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>

我的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

            });

        }

我知道一旦我有下载链接,我可以使用这段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>

谢谢大家!
2个回答

6
你可以在"generateAndDownloadPdf"方法中使用以下方式强制下载:
var anchor = document.createElement('a');
anchor.href = data.downloadUrl;
anchor.target = '_blank';
anchor.download = data.fileName;
anchor.click();

4
您可以使用以下方法:
window.location.href= url_to_download;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接