ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript はローカル ファイルに直接書き込むことができますか? できない場合、ダウンロード可能なファイルをどのように作成できますか?

JavaScript はローカル ファイルに直接書き込むことができますか? できない場合、ダウンロード可能なファイルをどのように作成できますか?

Susan Sarandon
リリース: 2024-12-23 02:41:32
オリジナル
755 人が閲覧しました

Can JavaScript Directly Write to Local Files, and If Not, How Can it Create Downloadable Files?

JavaScript はファイルに直接書き込めますか?

ユーザーは、コンソールに出力せずに JavaScript を使用して既存のテキスト ファイルにデータを書き込もうとします。 。 JavaScript が提供するファイル操作機能は限られていますが、セキュリティ上の理由からローカル ファイルに直接書き込むことはできません。

ただし、JavaScript は Blob および URL.createObjectURL API を使用してブラウザ内でファイルを作成できます。これにより、従来のテキスト ファイルに似たダウンロード可能なファイルを生成できます。残念ながら、これらのファイルはユーザーのローカル ストレージに直接保存できません。

ダウンロード可能なファイルの作成

次のコードは、JavaScript を使用してダウンロード可能なファイルを作成する方法を示しています。

var textFile = null;
var makeTextFile = function (text) {
  var data = new Blob([text], { type: 'text/plain' });

  if (textFile !== null) {
    window.URL.revokeObjectURL(textFile);
  }

  textFile = window.URL.createObjectURL(data);

  // Returns a URL that can be used as a link for downloading.
  return textFile;
};
ログイン後にコピー

ファイルのシミュレートダウンロード

ダウンロードをすぐに開始したい場合は、マウス イベントを使用してユーザーによるリンクのクリックをシミュレートできます。

var create = document.getElementById('create');
var textbox = document.getElementById('textbox');

create.addEventListener('click', function () {
  var link = document.createElement('a');
  link.setAttribute('download', 'info.txt');
  link.href = makeTextFile(textbox.value);
  document.body.appendChild(link);

  // Wait for the link to be added to the document.
  window.requestAnimationFrame(function () {
    var event = new MouseEvent('click');
    link.dispatchEvent(event);
    document.body.removeChild(link);
  });
}, false);
ログイン後にコピー

結論

JavaScript はローカル ファイルに直接書き込むことはできませんが、ブラウザ内でダウンロード可能なファイルを作成するメカニズムを提供します。これらの技術により、開発者はユーザーのセキュリティを損なうことなく動的ファイル生成機能を提供できるようになります。

以上がJavaScript はローカル ファイルに直接書き込むことができますか? できない場合、ダウンロード可能なファイルをどのように作成できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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