1. ホーム
  2. javascript

[解決済み] AngularJSやJavascriptでダウンロード用のファイルを提供する方法とは?

2023-01-09 13:24:53

質問

隠しテキストエリアにいくつかのテキストがあります。ボタンがクリックされたとき、私はテキストがダウンロードのために提供されるようにしたいと思います。 .txt ファイルとしてダウンロードできるようにしたいです。これはAngularJSまたはJavascriptを使用して可能ですか?

どのように解決するのですか?

このようなことを行うには Blob .

<a download="content.txt" ng-href="{{ url }}">download</a>

をコントローラの中に入れてください。

var content = 'file content for example';
var blob = new Blob([ content ], { type : 'text/plain' });
$scope.url = (window.URL || window.webkitURL).createObjectURL( blob );

のように、URLを有効にするために

app = angular.module(...);
app.config(['$compileProvider',
    function ($compileProvider) {
        $compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|ftp|mailto|tel|file|blob):/);
}]);

ご注意ください

createObjectURL()を呼び出すたびに、同じオブジェクトに対して既に作成されていたとしても、新しいオブジェクトURLが作成されます。これらはそれぞれ、不要になったときにURL.revokeObjectURL()を呼び出して解放する必要があります。ブラウザは、ドキュメントがアンロードされたときにこれらを自動的に解放します。しかし、最適なパフォーマンスとメモリ使用のために、明示的にこれらをアンロードできる安全な時間がある場合は、そうするべきです。

出典 MDN