IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

forcer téléchargement .pdf


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 2
    Par défaut forcer téléchargement .pdf
    Salut,

    Je suis en train de dévelloper un site et j'ai un soucis pour forcer le téléchargement de fichier pdf:

    j'ai utiliser la manière suivante:
    appelle dans le code html:
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="telecharger.php?fichier=FAUX_SANGLANTS-pdf">Liens téléchargement - Faux Sanglant</a>

    code du fichier telecharger.php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <?php
     
    list($fichier, $extension) = explode("-", $_GET['fichier']);
     
    $file= $fichier.'.'.$extension;
     
    $taille=filesize($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($file);
    exit();
     
    ?>

    le forçage du téléchargement se fait bien seulement lorsque je veux lire le fichier, Acrobat répond :
    Une erreur est survenue lors de l'ouverture du document. le fichier est endommager et n'a pas pu être réparer.

  2. #2
    Membre Expert

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Par défaut
    Pour le forum : utilise les balises de CODE stp.

    Pour ton problème, y a un exemple sur la FAQ PHP de DVP :
    http://php.developpez.com/faq/index...._forcedownload

    Je pense qu'il faut que tu vires toutes les balises HTML de la fichier telecharger.php

  3. #3
    Membre éclairé Avatar de JmL40
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    348
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 348
    Par défaut
    Salut

    tu peut tester ce code, en modifiant le content type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
     
    /* On récupère le nom du fichier à télécharger : si fichier excel nom du fichier  = fichier_xls sinon file */
    		if($extension_file == "xls"){$fichier_header = $fichier_xls;}
    		else{$fichier_header = $file;}
     
    		/* Mise en place de l'header pour le téléchargement du fichier */	
    		$taille = filesize($fichier_header); 
    		$nom_fichier = basename($fichier_header); 	
    		$extension_fichier = strtolower(substr(strrchr($nom_fichier,"."),1));		
    		switch($extension_fichier)
    		{
    			case "xls": $c_type="application/x-msexcel"; break;
    			case "zip": $c_type="multipart/x-zip"; break;
    		} 			
    		header("Pragma: public"); 
    		header("Expires: 0"); 
    		header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
    		header("Cache-Control: public"); 
    		header("Content-Description: File Transfer"); 	
    		header("Content-Type: $c_type");
    		header("Content-Disposition: attachment; filename=".$nom_fichier.""); 
    		header("Content-Transfer-Encoding: binary"); 
    		header("Content-Length: ".$taille); 	
    		@readfile($fichier_header);

Discussions similaires

  1. [FPDF] téléchargement forcer de pdf
    Par musicann dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 08/01/2009, 12h18
  2. [SQL] Forcer téléchargement (header)
    Par dib258 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 28/03/2006, 17h49
  3. Problème forcer téléchargement fichier
    Par cams dans le forum Langage
    Réponses: 34
    Dernier message: 15/12/2005, 16h42
  4. [ASP 3] Forcer téléchargement
    Par nborde dans le forum ASP
    Réponses: 5
    Dernier message: 10/12/2004, 16h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo