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 :

PHP telechargement > fichier erroné


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 15
    Points : 7
    Points
    7
    Par défaut PHP telechargement > fichier erroné
    Salut à tous, il y a quelque-chose que je ne comprends pas, je bataille depuis hier, mais je pense que je dois pas être trop loin de la solution.
    Je change dynamiquement le SRC d'une IFRAME cachée dans la page, poour faire commencer un téléchargement. Jusque là aucun problème, il ouvre la boite de téléchargement, je télécharge le fichier.
    Mais quand je l'ouvre le fichier commence par 2 tabulations. pourquoi ?

    J'ai de suite penser au fait que mes fichiers sont en UTF-8 sans BOM (enregistré avec notepad++), j'ai eut beau changer d'encodage, ça ne change rien.

    Je suis perdu là !! Quelqu'un aurait il une solution ?

  2. #2
    Membre chevronné Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Points : 1 895
    Points
    1 895
    Par défaut
    tu passes par un script de téléchargement ou bien tu récupères le fichier directement au serveur HTTP ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    avec les header en PHP
    et j'appelle la source de l'iframe avec javascript aussi

  4. #4
    Membre chevronné Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Points : 1 895
    Points
    1 895
    Par défaut
    montre nous le fichier PHP qui fait ça

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    voici le fichier qui est chargé dans l'iFrame
    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
    <?php
    	session_start();
    	include_once "../bdd.class.php";
    		if($_SESSION['who']){
    			$file = $_REQUEST['f'];
    			$q = "SELECT * FROM fichier WHERE FICHIER_id = '".$file."'";
    			$mysql = new mysql($q,false);
    			$ff = mysql_fetch_object($mysql->result);
    			//echo filesize("../".$ff->FICHIER_telechargement);
    			header("Content-Type: application/force-download");
    			header("Content-Transfer-Encoding: binary");
    			//header("Content-Length:".$taille);
    			header("Content-Disposition: attachment; filename=".$ff->FICHIER_nom."");
    			header("Expires: 60");
    			header("Cache-Control: no-cache, must-revalidate");
    			header("Pragma: no-cache");
    			readfile("../../".$ff->FICHIER_telechargement);
    			exit();
    		}
    		//é
    ?>

  6. #6
    Membre chevronné Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Points : 1 895
    Points
    1 895
    Par défaut
    pourtant tu enchaines correctement "header" "readfile" et "exit" donc ça ne devrait rien rajouter avant ou après le fichier
    est ce que tu as testé avec un fichier simple de quelques octets ?

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 19
    Points : 21
    Points
    21
    Par défaut
    Bonjour
    j'ai eu un problème similaire de renvoi de fichier via un header
    Voici la solution que j'ai trouvé en contournant readfile. Cela fonctionne bien chez moi
    A bientot

    http://www.developpez.net/forums/d85...e/#post4870736

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    Oui j'ai test avec un fichier de quelques octets et même soucis.

    @kite33 Ta solution marche mais ne me plait pas du tout, je préfèrerai faire avec les header.

    J'ai un peu avancer sur mon problème, je pense qu'il insère les caractères \r et \n en début de fichier. Mais impossible de trouver d'ou il vienne. Peut on les remplacer avant que le visiteur ne télécharge le fichier?

  9. #9
    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
    Si ton fichier PHP est en UTF8, vérifie qu'il n'a pas de BOM

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    Effectivement il est bien en UTF8, mais encoé en UTF8 sans BOM avec Notepad++
    Est t il possible qu'il contienne quand meme un BOM ?
    Je peux etre sur de l'encodage par NotePad++ ?

    Pourtant avec les autres fichiers aucuns problemes de BOM apparents

Discussions similaires

  1. telecharger un fichier stocké dans le serveur php
    Par thaundeadboss dans le forum Langage
    Réponses: 6
    Dernier message: 15/12/2009, 15h14
  2. Telechargement de fichiers depuis un .php
    Par tahataha dans le forum Langage
    Réponses: 1
    Dernier message: 22/03/2007, 08h40
  3. telechargement des fichiers en php
    Par jadoo dans le forum Langage
    Réponses: 2
    Dernier message: 22/11/2006, 14h57
  4. [PHP-JS] telechargement de fichier
    Par Tempotpo dans le forum Langage
    Réponses: 17
    Dernier message: 20/06/2006, 16h54
  5. [PHP-JS] telechargement de fichier probleme header
    Par Tempotpo dans le forum Langage
    Réponses: 10
    Dernier message: 13/06/2006, 14h51

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