Maison  >  Article  >  interface Web  >  Comment télécharger des fichiers via POST avec JSON en JavaScript/jQuery ?

Comment télécharger des fichiers via POST avec JSON en JavaScript/jQuery ?

DDD
DDDoriginal
2024-10-19 15:19:30566parcourir

How to Download Files via POST with JSON in JavaScript/jQuery?

Téléchargement de fichiers via POST avec JSON en JavaScript/jQuery

Lorsqu'il s'agit de services Web RESTful, la gestion des réponses peut varier en fonction de leur format. Cet article explore un scénario spécifique où l'objectif est de soumettre une requête POST avec des données JSON et de récupérer un fichier téléchargeable en réponse, invitant le navigateur à l'enregistrer.

Solution n°1 : injection iframe

Une approche consiste à créer une iframe et à ajouter sa source au corps de la page Web. Cela déclenchera l'invite de téléchargement du navigateur. Cependant, il est important de noter que cette méthode peut interférer avec le contenu de la page existante, il est donc recommandé d'utiliser appendChild au lieu de innerHTML.

<code class="javascript">$.post('/create_binary_file.php', postData, function(retData) {
  var iframe = document.createElement("iframe");
  iframe.setAttribute("src", retData.url);
  iframe.setAttribute("style", "display: none");
  document.body.appendChild(iframe);
});</code>

Solution n°2 : jQuery Append

Un jQuery- L'alternative basée sur la méthode consiste à utiliser la méthode append() pour ajouter l'iframe au corps.

<code class="javascript">$.post('/create_binary_file.php', postData, function(retData) {
  $("body").append("<iframe src='" + retData.url+ "' style='display: none;' ></iframe>");
});</code>

Mécanisme

Les deux solutions reposent sur l'hypothèse que la réponse POST inclut une propriété 'url' pointant vers le fichier téléchargeable. Lorsque l'iframe est ajouté à la page avec cette URL, le navigateur intercepte la demande et invite l'utilisateur à télécharger le fichier. Cette approche nécessite une configuration appropriée du type MIME sur le serveur Web.

Évaluation

Bien que ces solutions fournissent une approche viable pour télécharger des fichiers via des requêtes POST, il est crucial de prendre en compte les limitations et inconvénients potentiels, en particulier lorsque vous traitez des fichiers plus volumineux. De plus, il peut être nécessaire d'implémenter des fonctionnalités supplémentaires dans le gestionnaire de réussite AJAX pour activer la gestion des erreurs et fournir des commentaires à l'utilisateur.

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