2016-09-12 4 views
1

ボタンを使用してダウンロードを開始し、AngularJS $httpサービスをバックグラウンドで使用してファイルを提供することはできますか?

新しいウィンドウを開くことなくファイルのダウンロードを開始する簡単なボタンが必要です。さらに、ヘッダの内側にAuthorizationを設定する必要があります。これは

var app = angular.module('myApp', []); 
 

 

 
app.controller('myCtrl', function($scope, $http) { 
 

 
    $scope.startDownload = function() { 
 
    var auth = ""; //username + password 
 
    $http.defaults.headers.common['Authorization'] = auth; 
 

 
    //this will return a file 
 
    $http({ 
 
     method: 'GET', 
 
     url: 'https://upload.wikimedia.org/wikipedia/commons/1/1c/FuBK_testcard_vectorized.svg?download'/*, 
 
     headers: { 
 
     'Authorization': 'Basic efhjwefjfbweikabfkwhfb' 
 
     }*/ 
 
    }).then(function(){ 
 
     //???? 
 
    }); 
 
    }; 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div ng-app="myApp" ng-controller="myCtrl"> 
 
    <button type="button" ng-click="startDownload()">Download</button> 
 
</div>

答えて

0

同様の問題に関する質問のトンを読んだ後、それが不可能であることを強調し

これまでのところ、私はこれをしませんでしたAJAXリクエストに基づいてユーザーのディスクにファイルを保存します。

Stackoverflowでこの質問を見る

2

変更:

ng-click="startDownload()" 
+0

私はタイプミスを修正しました。しかし、それはまだ動作していません。私は質問を更新し、既存のURLを画像ファイルに追加しました。スニペットはまだユーザーのダウンロードフォルダにファイルをダウンロードしていません。 – d4rty

関連する問題