ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript で BLOB ファイルをダウンロードするときにカスタム ファイル名を設定するにはどうすればよいですか?

JavaScript で BLOB ファイルをダウンロードするときにカスタム ファイル名を設定するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-13 18:46:10
オリジナル
737 人が閲覧しました

How to Set a Custom Filename When Downloading a Blob File in JavaScript?

JavaScript: 直接ダウンロードする BLOB ファイルのファイル名の設定

window.location を使用して JavaScript で BLOB ファイルをダウンロードする場合、ファイルは通常、一般的な名前で保存されます。カスタム ファイル名を設定するには、非表示の を作成するなどの特別なテクニックを使用する必要があります。 tag.

元のコード例:

function newFile(data) {
    var json = JSON.stringify(data);
    var blob = new Blob([json], {type: "octet/stream"});
    var url = window.URL.createObjectURL(blob);
    window.location.assign(url);
}
ログイン後にコピー

このコードは、

bfefe410-8d9c-4883-86c5-d76c50a24a1d

へファイル名を

my-download.json に設定し、次の手順に従います。

    非表示の を作成します。タグを付けてドキュメントに追加します。
var a = document.createElement("a");
document.body.appendChild(a);
a.style = "display: none";
ログイン後にコピー
    を設定します。タグの href 属性を BLOB の URL に、download 属性を目的のファイル名に設定します。
a.href = url;
a.download = "my-download.json";
ログイン後にコピー
    をクリックしてダウンロードをトリガーします。タグ:
a.click();
ログイン後にコピー
    再度アクセスされないように BLOB の URL を取り消します:
window.URL.revokeObjectURL(url);
ログイン後にコピー

例実装:

var saveData = (function () {
    var a = document.createElement("a");
    document.body.appendChild(a);
    a.style = "display: none";
    return function (data, fileName) {
        var json = JSON.stringify(data),
            blob = new Blob([json], {type: "octet/stream"}),
            url = window.URL.createObjectURL(blob);
        a.href = url;
        a.download = fileName;
        a.click();
        window.URL.revokeObjectURL(url);
    };
}());

var data = { x: 42, s: "hello, world", d: new Date() },
    fileName = "my-download.json";

saveData(data, fileName);
ログイン後にコピー

注:

    古いブラウザはダウンロード属性をサポートしていない可能性があります。
  • 一部のファイル形式 (例: JSON) は、別の拡張子 (例: txt) を使用して、セキュリティ制限を回避します。
  • より堅牢で信頼性の高いソリューションとして、FileSaver.js などのライブラリの使用を検討してください。

以上がJavaScript で BLOB ファイルをダウンロードするときにカスタム ファイル名を設定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート