首页 > 解决方案 > 以角度下载带有blob的文件

问题描述

我是 Angular 新手,我必须在应用程序中添加一个按钮,所以当我点击时,它应该开始下载已经记录的文件。

我有这个代码

var _RecordStopCallback = function(blob){
            if (!blob && blob.length==0){
                $scope.isRecorded = false;
                return;
            }
            $scope.recordObj.recordedData = blob;
            const url = URL.createObjectURL(blob);
              var el = $("#downloads").html("");
              var hf = $("<a></a>");
              hf.attr({
                  src:url,
                  href:url,
                  download:$scope.recordFilename
              }).html($scope.recordFilename);
              hf.appendTo(el);
              $scope.isStoping = false;
            $scope.recordStatus = false;
            $scope.isRecorded = true;
            $scope.recordStatusText = "Start";
            $scope.streamError = "";
            _changeStatusText();
            $scope.$apply();
            $scope.saveProcess();

在 HTML 文件中:

<div ng-show="isRecorded" class="color-info"> Recorded File : <span id='downloads'></span> 
<button ng-click="{{recordFilename}}" class="btn-circle btn-circle-default">
<i class="zmdi zmdi-download"></i></button> 

这一行:

<span id='downloads'></span> 

显示重新编码的文件名并将其作为链接,因此当您单击它时,您可以直接下载它,但我不知道如何使按钮做同样的事情?

任何帮助,将不胜感激!

标签: javascriptangularjsblob

解决方案


您可以为被点击的按钮注册一个回调,在那里您可以创建您在问题中显示的相同链接,将其设置为隐藏,将其插入 DOM 并调用.click()它。需要插入 DOM,否则某些浏览器将无法开始下载。


推荐阅读