3

PHPサーバーを呼び出すAngularJsアプリケーションがあります。この状況では、AngularJS サービスが呼び出されて、PHP サーバーへの $http.get 呼び出しが行われます。PHP の関数作業の最後に、readFile 関数を使用してデータを送信します。

PHP 応答:

header('Content-Description: File Transfer');
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"".basename($fileLocation)."\"");
header("Content-Transfer-Encoding: binary");
header("Expires: 0");//            header('Content-Disposition: attachment; 
header("Pragma: public");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header('Content-Length: ' . filesize($fileLocation)); //Remove

flush();
readfile($fileLocation);

ファイル データはブラウザによって正常に取得されます - $http.get promise の結果として返されます。

Angular 関数の呼び出しと Promise の結果

app.controller('ControllerName', function($scope,myService){
    $scope.downloadFile = function(){
        var getFile = myService.GetFile();
        getFile.success(function(result){
            // result here DOES contain the file contents! 
            // so... how to allow user to download??
        });
        getFile.error(function(result){
            $scope.message = result.error;
        });
    };
});

ユーザーがこのデータをファイルとしてダウンロードできるようにするにはどうすればよいですか?

4

1 に答える 1