用角下载blob下载文件

时间:2018-08-26 22:25:16

标签: javascript angularjs 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> 

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

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

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