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 :

Script php téléchargement fichier avec accents


Sujet :

Langage PHP

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

    Informations forums :
    Inscription : Juin 2009
    Messages : 151
    Points : 69
    Points
    69
    Par défaut Script php téléchargement fichier avec accents
    Bonjour,

    Je n'arrive pas à télécharger des fichiers avec des noms avec accents .
    Voici mon script download.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
     
    $fi = $_GET['file'];
     
      $file = "mon_dossier/".$fi;
     
      $fp = fopen($file,"r") ;
      $size = filesize($file);
     
      header("Content-Type: application/pdf");
      header("Content-Length: $size");
      header("Content-Disposition: filename=$fi");
     
      while (! feof($fp)) {
           $buff = fread($fp,4096);
           print $buff;
           }
    Voici mon code qui fait appel à cette la page download.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
       <a href="<?php echo 'downloadCV.php?file=CV_'.$don['prenom'].'_'.$don['nom'].'.pdf' ?>">blabla</a>
    prenom et nom sont stockés dans la base de donnée sous la forme : "&eacute;ric m&egrave;rgez" pour éric mèrgez par exemple.
    dans mon dossier les CV sont stockés sous la forme :
    "CV_éric_mèrgez"

    Je n'ai aucun problème avec les noms sans accents.

  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
    prenom et nom sont stockés dans la base de donnée sous la forme : "&eacute;ric m&egrave;rgez" pour éric mèrgez par exemple.
    Ne stocke pas les données sous cette forme et ton problème sera résolu.

    Il faut sinon utiliser htmldecode()
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

    Informations forums :
    Inscription : Juin 2009
    Messages : 151
    Points : 69
    Points
    69
    Par défaut
    Mais quand j'appelle mon script download.php, j'utilise echo :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a href="<?php echo 'downloadCV.php?file=CV_'.$don['prenom'].'_'.$don['nom'].'.pdf' ?>">blabla</a>
    Donc dans mon fichier download.php la variable $file contient bien les accents traduit et non les &eacute; ou &egrave;

    Il est impossible de télécharger des fichier avec accents? bizarre

  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
    Donc dans mon fichier download.php la variable $file contient bien les accents traduit
    Les entités html ne disparaissent pas mysterieusement entre la base et ton script PHP.

    Au passage, tu peux utiliser un simple readfile() plutot que de passer par fopen etc.
    Au passage encore, tu ne fais aucune vérification sur le nom de fichier passé, tu ouvres potentiellement tout ton serveur.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

    Informations forums :
    Inscription : Juin 2009
    Messages : 151
    Points : 69
    Points
    69
    Par défaut
    Merci c'est résolu ! J'ai remplacé les &eacute... avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    $patterns = array();
    	$patterns[0] = '/&eacute;/';	
    	$patterns[1] = '/&egrave;/';
    	$patterns[2] = '/&ecirc;/';
    	$patterns[3] = '/&ccedil;/';	
    $replacements = array();
    	$replacements[0] = 'é';
    	$replacements[1] = 'è';
    	$replacements[2] = 'ê';
    	$replacements[3] = 'ç';
     
    $prenomReplace = preg_replace($patterns, $replacements, $prenom);
    $nomReplace = preg_replace($patterns, $replacements, $nom);
    Pour mon foopen() ça marche donc je touche pas
    Et pour la vérification du nom de fichier je vais m'en occuper !

    Merci encore

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 151
    Points : 69
    Points
    69
    Par défaut
    Euh alors en fait c'est pas résolu

    J'ai changé ma BDD en mettant tous les &eacute; &egrave; ... avec les accents correspondants.

    Mais je n'arrive toujours pas à faire télécharger les fichiers avec accents

Discussions similaires

  1. StreamWriter - Encoding - Ecrire dans fichiers avec accents ?
    Par ExSter dans le forum Windows Forms
    Réponses: 8
    Dernier message: 28/07/2011, 14h27
  2. Lire un fichier avec accent
    Par Nulenprogra dans le forum VB.NET
    Réponses: 2
    Dernier message: 11/07/2008, 12h04
  3. [AJAX] faire tourner un script php en boucle avec ajax
    Par mitmit dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 05/05/2007, 10h33
  4. appel de script php a distante avec envoie de variable
    Par xtaze dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/05/2006, 15h53
  5. [C#] PRoblème d'écriture d'un fichier avec accent
    Par shinchan dans le forum Windows Forms
    Réponses: 2
    Dernier message: 11/04/2006, 09h13

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