Maison > interface Web > js tutoriel > Comment puis-je télécharger des fichiers de manière asynchrone dans une application Struts2 à l'aide d'Ajax ?

Comment puis-je télécharger des fichiers de manière asynchrone dans une application Struts2 à l'aide d'Ajax ?

Linda Hamilton
Libérer: 2024-12-28 10:30:13
original
512 Les gens l'ont consulté

How Can I Asynchronously Download Files in a Struts2 Application Using Ajax?

Téléchargement de fichiers asynchrone avec Ajax

Problème :

Dans une application Struts2, un appel jQuery Ajax récupère les données du flux binaire représentant un fichier à télécharger, mais les utilisateurs ne peuvent pas enregistrer le fichier localement.

Solution :

Approche du navigateur moderne (2019 et versions ultérieures)

Pour les navigateurs modernes, une approche simplifiée peut être adopté :

  1. Utilisez l'API fetch() pour récupérer le file :

    fetch('https://jsonplaceholder.typicode.com/todos/1')
      .then(resp => resp.blob())
    Copier après la connexion
  2. Créez une URL d'objet pour le fichier :

      .then(blob => {
     const url = window.URL.createObjectURL(blob);
    Copier après la connexion
  3. Créez une URL élément et définissez ses attributs :

     const a = document.createElement('a');
     a.style.display = 'none';
     a.href = url;
     a.download = 'todo-1.json';
    Copier après la connexion
  4. Ajoutez l'élément au document et cliquez dessus :

     document.body.appendChild(a);
     a.click();
    Copier après la connexion
  5. Supprimez l'URL de l'objet :

     window.URL.revokeObjectURL(url);
    Copier après la connexion
  6. Informer l'utilisateur du succès téléchargement :

     alert('your file has downloaded!');
    Copier après la connexion

Considérations supplémentaires :

  • Assurer la compatibilité avec les navigateurs cibles.
  • Gérer les grands les fichiers sont téléchargés séparément pour éviter d'éventuels problèmes de performances.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal