Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimanakah Saya Boleh Muat Turun Fail Menggunakan API Pengambilan Sebelah Klien?

Bagaimanakah Saya Boleh Muat Turun Fail Menggunakan API Pengambilan Sebelah Klien?

Patricia Arquette
Patricia Arquetteasal
2024-10-23 07:28:29917semak imbas

How Can I Download a File Using the Client-Side Fetch API?

Cara Muat Turun Fail Menggunakan Client-Side Fetch

Apabila membangunkan aplikasi web atau mudah alih, anda mungkin perlu memuat turun fail daripada pelayan jauh ke peranti pengguna. Dengan pengenalan API Ambil, memuat turun fail pada bahagian klien menjadi lebih mudah.

Pertimbangkan coretan kod berikut:

<code class="javascript">function downloadFile(token, fileId) {
  let url = `https://www.googleapis.com/drive/v2/files/${fileId}?alt=media`;
  return fetch(url, {
    method: 'GET',
    headers: {
      'Authorization': token
    }
  }).then(...);
}</code>

Dalam senario ini, anda mempunyai permintaan Ambil ditakrifkan yang mendapatkan semula fail daripada Google Drive. Timbul persoalan: apakah yang perlu anda lakukan dalam blok kemudian untuk memuat turun fail?

Pendekatan yang lebih bersih dan cekap untuk memuat turun fail ditunjukkan di bawah, menggunakan API Ambil tanpa bergantung pada perpustakaan tambahan.

<code class="javascript">const url = 'http://sample.example.file.doc';
const authHeader = "Bearer 6Q************"; 

const options = {
  headers: {
    Authorization: authHeader
  }
};
fetch(url, options)
  .then(res => res.blob())
  .then(blob => {
    var file = window.URL.createObjectURL(blob);
    window.location.assign(file);
  });</code>

Coretan kod ini memulakan permintaan Ambil dengan URL yang sesuai dan pengepala kebenaran. Ia kemudian menggunakan kaedah res.blob() untuk mendapatkan semula data binari fail. Selepas itu, ia mencipta URL objek sementara untuk fail dan menyerahkannya kepada window.location untuk mencetuskan muat turun.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Muat Turun Fail Menggunakan API Pengambilan Sebelah Klien?. 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