web-dev-qa-db-ja.com

Angularjs / Restangular、ダウンロードするファイルblobに名前を付ける方法は?

何らかの理由で、これはIE Chrome/FFよりも簡単に思えます:

$scope.download = function() {
    Restangular.one(myAPI)
      .withHttpConfig({responseType: 'blob'}).customGET().then(function(response) {

        //IE10 opens save/open dialog with filename.Zip
        window.navigator.msSaveOrOpenBlob(response, 'filename.Zip');

        //Chrome/FF downloads a file with random name                
        var url = (window.URL || window.webkitURL).createObjectURL(response);
        window.location.href = url;
    });
};

IE10 +の動作と同様の方法はありますか?つまり、ファイル名/タイプ(Zipのみ)を指定できますか?

9
WBC

オブジェクトのURLを取得したらすぐに、アンカーを作成して download 属性を目的のファイル名に設定し、hrefをオブジェクトのURLに設定して、クリックを呼び出すだけです。

var myBlob = new Blob(["example"],{type:'text/html'})
var blobURL = (window.URL || window.webkitURL).createObjectURL(myBlob);
var anchor = document.createElement("a");
anchor.download = "myfile.txt";
anchor.href = blobURL;
anchor.click();

ダウンロード属性の互換性

27
Patrick Evans

https://www.npmjs.com/package/angular-file-saver ブラウザサポートテーブルはここで確認できます: https://github.com/eligrey/FileSaver。 js /

1
icyerasor