Maison  >  Article  >  interface Web  >  Comment télécharger des fichiers à l’aide de window.fetch() ?

Comment télécharger des fichiers à l’aide de window.fetch() ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-23 07:29:01503parcourir

How to Download Files Using window.fetch()?

Téléchargement de fichiers avec window.fetch()

Lorsqu'il s'agit de télécharger des fichiers à l'aide de l'API window.fetch(), vous devrez enchaîner un then( ) bloquez l'appel fetch() pour gérer la réponse. Voici comment procéder :

<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(res => {
    // Handle the response here
  });
}</code>

Dans le bloc then(), vous pouvez généralement utiliser les étapes suivantes pour télécharger le fichier :

  1. Convertir la réponse en un blob : res.blob().then(blob => {});
  2. Créez une URL pour le blob : var file = window.URL.createObjectURL(blob);
  3. Attribuez le URL vers window.location pour déclencher un téléchargement : window.location.assign(file);

Voici une alternative plus courte et plus efficace qui utilise uniquement l'API fetch :

<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>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn