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 :

Lecture d'un fichier


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 295
    Points : 71
    Points
    71
    Par défaut Lecture d'un fichier
    Bonjour et bonne fêtes a vous ,

    j'ai un petit problème avec un fichier a télécharger,le dl se passe bien mais quand je veux lire le fichier avec adobe car le fichier est en .pdf,il n'arrive pas a le lire donc voici se que je fais:

    premièrement j'upload le fichier que j'ai crée je met le nom du fichier en bdd et envoi le fichier dans un dossier,je récupère l'id que j’envoie en url et la je récupère le dit fichier

    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
    26
    27
    28
     
    if(isset($_GET["id"])){
     $id=(int)$_GET["id"];
    	$query=$db->prepare('SELECT COUNT(*) AS nbr FROM download WHERE id_download =:id');
    	$query->bindvalue(':id', $id, pdo::PARAM_STR);
    	$query->execute() or die(print_r($query->errorInfo()));
    	if( $query->fetchColumn() > 0)
    	{
    		$query=$db->prepare('SELECT fichier FROM download WHERE id_download =:id');
    		$query->bindvalue(':id', $id, pdo::PARAM_STR);
    		$query->execute() or die(print_r($query->errorInfo()));
    		 $data=$query->fetch(PDO::FETCH_OBJ);
    		  $chemin = '../pdf/' . $data->fichier;
    		header('Content-Description: File Transfer');
    		header('Content-Type: application/octet-stream');
    		header('Content-Disposition: attachment; filename=' . basename($chemin));
    		header('Content-Transfer-Encoding: binary');
    		header('Expires: 0');
    		header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    		header('Pragma: public');
    		header('Content-Length: ' . filesize($chemin));
    		readfile($chemin);
    		exit;
    	}
    }else{
    echo '<div class="annonce"><p>"vous n\'avez pas cliqué sur le bon lien"</p></div>';
    }
    ?>
    quel genre d'erreur peut il y avoir

    merci de l'aide

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Vérifie que ton fichier .php est encodé sans BOM s'il est en UTF8.
    Ouvre le fichier .pdf dans un editeur de texte et vérifie qu'il commence bien par %PDF.

    Au passage tu n'as pas besoin de 2 requête, fait directement la deuxième et regarde s'il y a un resultat ou non.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 295
    Points : 71
    Points
    71
    Par défaut
    alors notepad ++ est configuré en utf-8 sans bom et quand je regarde le fichier dans bloc notes je vois l’entêtes en html et des caractères bizarre par contre a la 1ere phrase je vois %pdf

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il ne doit pas y avoir de HTML quand tu construits ton PDF.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 295
    Points : 71
    Points
    71
    Par défaut
    j'ai viré mon includes ou se trouvais le doctype que j'ai remplacer par les identifiants de connexion et sa marche,j'ai bien mon fichier par contre comment tu fais pour faire une verif en plus de la sélection du champs,j'ai toujours des soucis en rapport au requêtes moi ppffff

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je n'ai pas compris de quoi tu parles.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 295
    Points : 71
    Points
    71
    Par défaut
    Au passage tu n'as pas besoin de 2 requête, fait directement la deuxième et regarde s'il y a un resultat ou non.
    tu as marquer ceci,donc je voulais savoir comment on fais

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(isset($_GET["id"])){
    	$query=$db->prepare('SELECT fichier FROM download WHERE id_download =:id');
    	$query->execute(array(':id'=> $_GET["id"]);
    	if  ($data=$query->fetch(PDO::FETCH_OBJ)) {
     	 	$chemin = '../pdf/' . $data->fichier;

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 295
    Points : 71
    Points
    71
    Par défaut
    ok merci pour l'exemple et pour la résolution de mon problème,

    bonne fêtes de fin d'année

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Lecture d'un fichier .dbf
    Par San Soussy dans le forum Autres SGBD
    Réponses: 8
    Dernier message: 07/07/2004, 17h30
  2. Réponses: 6
    Dernier message: 02/09/2003, 16h12
  3. Lecture et ecriture fichier .ini
    Par despe dans le forum C
    Réponses: 6
    Dernier message: 23/07/2003, 21h40
  4. [langage] Optimiser la lecture d'un fichier
    Par And_the_problem_is dans le forum Langage
    Réponses: 4
    Dernier message: 05/02/2003, 09h54
  5. [langage] Optimiser la lecture d'un fichier
    Par And_the_problem_is dans le forum Langage
    Réponses: 2
    Dernier message: 11/06/2002, 11h24

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