rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

[PhP] Forcer le download.

Posté par Zep3k!GnO, le lundi 27 mars 2006 à 10:36:58
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 ! Zep3k!GnO
On est des rangers mec, des rangers...
Répondre à Zep3k!GnO  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
kilian, le lundi 27 mars 2006 à 11:04:36
Je crois que c\'est une chose qui ne concerne que le navigateur en fonction du type MIME du document qu\'on lui propose.

Si par exemple un serveur lui envoie un document possédant le type MIME d\'un pdf et que le navigateur inclut la lecture des pdf alors celui -ci le lira directement, par contre pour un type MIME qu\'il ne sait pas traiter il proposera le téléchargement.

Une solution pour pallier à ça serait de donner le type MIME
application/octet-stream (grâce à la fonction header justement):
header('Content-Type: application/octet-stream')
puis d\'envoyer le pdf mais il faut que la personne en face sache comment l\'ouvrir une fois téléchargé...
Répondre à kilian

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Luffy =), le lundi 27 mars 2006 à 11:08:47
Salut =)

Il me semble que tu peux le faire avec le code :
header('Content-Disposition: attachment; filename="document.pdf"');

++ Le Parisien, il vaut mieux l'avoir en journal !!! :-P
Répondre à Luffy =)

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Zep3k!GnO, le lundi 27 mars 2006 à 11:18:23
okay bin je testerai ça et je dirai si j'ai des soushis :D
MErci Zep3k!GnO
On est des rangers mec, des rangers...
Répondre à Zep3k!GnO

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
boulinette, le mercredi 29 mars 2006 à 09:53:49
<a href="download-doc.php?file=ton_fichier">telech­arger </a>

Tom fichier download

La var file c'est ton fichier

<?
$file=$_GET['file'];

//telechargement
$taille=filesize("doc/$file");
header("Content-Type: application/force-download; name=\"$file\"");
header("Content-Transfer-Encoding: binary");
header("Content-Length: $taille");
header("Content-Disposition: attachment; filename=\"$file\"");
header("Expires: 0");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
readfile("doc/$file");
exit();
?>
Répondre à boulinette

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Zep3k!GnO, le mercredi 29 mars 2006 à 10:09:26
Yep, merci , c'est le post ou t'avais mis ca que je ne retrouvait plus... Merci beaucoup :D
Bonne journée. Zep3k!GnO
On est des rangers mec, des rangers...
Répondre à Zep3k!GnO

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
geek1983, le lundi 18 février 2008 à 18:07:04
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.'&­quot;></iframe>';
Répondre à geek1983

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
A. nonyme, le jeudi 13 mars 2008 à 13:31:46
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.
Répondre à A. nonyme

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 dfgsfhgsfgh, le jeudi 10 avril 2008 à 11:29:57
pourriez vous m'aider a les telechager
Répondre à dfgsfhgsfgh
Logiciels pertinents trouvés dans les téléchargements
Télécharger YouTube Movie Downloader 1.1.1YouTube Movie Downloader - Comme son nom l'indique, YouTube Movie Downloader permet de télécharger sur le disque dur les vidéos diffusées en streaming...Catégorie: Téléchargement
Licence: Freeware/gratuit
Télécharger PHP Edit 0.6PHP Edit - PHPEdit est un environnement de développement intégré (IDE) sous Windows pour le langage PHP. Il offre un grand nombre de...Catégorie: PHP
Licence: Freeware/gratuit
Télécharger Download Statusbar 0.9.4.5.1Download Statusbar - Cette extension remplace la fenêtre de téléchargement de Firefox par une discrète barre en bas de l'écran. En laissant le...Catégorie: Extensions Firefox
Licence: Freeware/gratuit
Télécharger Free Download Manager 2.5 build 758Free Download Manager - Free Download Manager est un logiciel gratuit de téléchargement, permettant aussi bien de télécharger des fichiers...Catégorie: Téléchargement
Licence: Open Source
Plus de logiciels gratuits sur « [PhP] Forcer le download. »