Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Memaksa Nama Fail Tertentu Semasa Memuat Turun Fail Blob dalam JavaScript?

Bagaimanakah Saya Boleh Memaksa Nama Fail Tertentu Semasa Memuat Turun Fail Blob dalam JavaScript?

Susan Sarandon
Susan Sarandonasal
2024-12-14 08:00:19304semak imbas

How Can I Force a Specific Filename When Downloading a Blob File in JavaScript?

Menetapkan Nama Fail Blob untuk Muat Turun Paksa dalam JavaScript

Apabila memuat turun fail gumpalan terus melalui window.location, nama fail lalai ialah rawak rentetan. Walau bagaimanapun, anda mungkin mahu menetapkan nama fail tersuai untuk menjadikannya lebih bermaklumat.

Untuk mencapai ini, anda tidak boleh bergantung semata-mata pada kaedah window.location. Sebaliknya, anda perlu menggunakan langkah berikut:

  1. Buat elemen.
  2. Tetapkan atribut hrefnya kepada URL gumpalan.
  3. Tetapkan atribut muat turunnya kepada nama fail yang diingini.
  4. Cetuskan klik pada elemen.

Berikut ialah contoh yang memudahkan proses:

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

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

saveData(data, fileName);

Nota:

  • Pelayar lama mungkin tidak menyokong atribut muat turun.
  • Format fail tertentu mungkin dihadkan oleh penyemak imbas, menyebabkan muat turun kegagalan. Pertimbangkan untuk menggunakan sambungan fail yang berbeza (.txt untuk JSON, contohnya).

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memaksa Nama Fail Tertentu Semasa Memuat Turun Fail Blob dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn