[PhP] Forcer le download.

Résolu/Fermé
Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 - 27 mars 2006 à 10:36
 postgresophil - 3 juin 2015 à 13:04
Bonjour à tous.
Je voulais savoir comment on fait en PhP pour forcer l'utilisateur à télécharger un document (mon cas un PDF).
Que lorsque l'on clic sur le lien, on ait l'invite de télécharegement qui s'affiche.
Je sais que c'est avec des hearders mais je ne me souviens plus bien...
Merci à vous !
A voir également:

23 réponses

Bonjour,

Je voulais utiliser un code similaire à celui-ci dessus pour crée un fichier téléchargeable et ca en temp réel, je connais d'avance la taille final (on va dire 750ko pour l'exemple) donc je l'indique dans l'header ainsi que le nom.

J'ai volontairement mis seulement un readfile avec un fichier plus petit (on va prendre par exemple 500ko) que le resultat final pour simuler une erreur ou bug de programmation dans l'une des routines de création à la volée.

Lorsque IE commence le téléchargement, il m'affiche la taille et le nom voulu par les header, il commence à telecharger les 500 premiers ko, il s'arrete mais au lieu d'afficher une erreur, il fait comme s'il avait réussi à télécharger le fichier sauf qu'il fait 500ko alors qu'il avait annoncé 750ko au démarrage du téléchargement.

Est-ce qu'il y a un moyen d'éviter qu'un telechargement incomplet pour cause de plantage soit affiché comme réussi ? (un peu comme quand la connexion est interrompue)

Est-ce une précision dans l'header qui force la verification ? Est-ce qu'il faut envoyer quelques choses pour signaler l'erreur ?

Merci d'avance.
-1
tout c'est trucs sont du bla bla bla. esait le accelerator plus. et tu va voir. lolll.
-1
Pour ceux qui inclue force-download.php à leur script et qui ont le problème de la page blanche après l'exécution de force-download.php la solution est de l'appeler via un iframe invisible.

Ex: echo '<iframe style="display:none" src="download.php?file='.$file.'&event='.$event_name.'"></iframe>';
-2