Download File avec Ajax

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Download File avec Ajax

Re: Download File avec Ajax

par Truc » 31 mars 2010, 13:17

Modération :
Si tu as une autre question ouvre un nouveau sujet,
cela te permettra d'avoir plus de réponses.
Tu peux mettre un lien comme ceci
javascript-ajax/download-file-avec-ajax-t252124.html
vers le sujet en relation avec ton problème.

En plus, tu pourras mettre [Résolu] dès que ton problème évoqué ici sera réglé.

Merci de prendre le temps de lire les règlements.

Download File avec Ajax

par mfrerebeau » 31 mars 2010, 12:16

Bonjour,
Je cherche depuis un moment sur le net et votre discussion se rapproche le plus de ce que je souhaite...
Cependant, mes raisons de chercher à dowloader un fichier avec AJAX sont différentes : mon clique gauche est bien libre...
Je me demande si cette solution AJAX est obligatoire pour mon problème ou si il existe une solution plus simple à ma problématique ?

Petite description du contexte :
Côté PHP, le fichier est généré en live. Parfois, il peut arriver que la génération ne puisse pas se faire. Ma fonction retourne alors une erreur. côté PHP ressemble à ça :

Code : Tout sélectionner

$erreur = generer_fichier( $info ); if( $erreur ) { echo $message_erreur; } else { header("Content-disposition: attachment; filename=monfichier.pdf" ); header("Content-type: application/pdf" ); echo $info; }
Côté HTML :

Code : Tout sélectionner

(...)<a href="/test.php">lien direct</a>(...)
Mon souci :
  • si le fichier est bien généré j'ai directement la fenêtre de chargement du fichier et ma page reste inchangée
  • si le fichier n'est pas bien généré ma page est remplacé par le message d'erreur
Bien sûre, je peux recharger ma "belle" page en y insérant mon message d'erreur... Mais je souhaite, si c'est possible, ne pas recharger la page et renvoyer un simple message dans une boite d'alerte Js par exemple.
En AJAX, je renvoie le message en JSON et l'affiche dans une alerte... Mais là c'est quand la génération réussie que je ne sais plus comment afficher la fenêtre d'enregistrement du fichier côté client...

Avez-vous une idée pour faire simple et ne pas recharger la page en cas d'erreur ?