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 :

[Upload] Nom de fichier avec un/des caractères accentués ?


Sujet :

Langage PHP

  1. #1
    Membre confirmé Avatar de Christophe Charron
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    920
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 920
    Points : 606
    Points
    606
    Par défaut [Upload] Nom de fichier avec un/des caractères accentués ?
    Bonsoir,
    je cherche à faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $fp = fopen($img,"r")  or die ("impossible d'ouvrir le fichier!".$img);
    avec n'importe quel fichier, situé dans n'importe quel répertoire.
    A priori, tout fonctionne dans tous les cas, sauf lorsque le nom du fichier ou le nom du répertoire contient un caractère accentué.
    C:\fichier vide avec un caractère accentué dans le nom.txt
    Il y a-t'il une solution ?

  2. #2
    Membre émérite

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    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
    Points : 2 557
    Points
    2 557
    Par défaut
    je ne connais pas de solutions a ton probleme, mais une chose est sur :

    Sur internet les noms de fichiers ou d'images ne doivent pas contenir de :
    • caracteres accentues
    • espace
    • et autres fioritures.

    Juste les lettres (minuscule, comme ca pas de probleme de casse), les chiffres, le - le _ et c'est tout.

    donc y aura plus de probleme.

  3. #3
    Membre confirmé Avatar de Christophe Charron
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    920
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 920
    Points : 606
    Points
    606
    Par défaut
    Citation Envoyé par Maxoo
    je ne connais pas de solutions a ton probleme, mais une chose est sur :

    Sur internet les noms de fichiers ou d'images ne doivent pas contenir de :
    • caracteres accentues
    • espace
    • et autres fioritures.
    Merci pour la prompte réponse. Moi aussi, je suis un grand idéaliste, mais ce p.... de c..... de client, il fait ce qu'il veut. Et si le système l'a autorisé à créer des noms de fichiers exotiques, il s'est empressé de profiter et d'abuser de ce droit. Moi aussi, je regrette le temps béni ou seuls les informaticiens touchaient à un clavier et ou les noms de fichiers ne dépassaient pas 8 caractères mais bon les choses changent ...
    Petite précision, le fichier est en local

  4. #4
    Membre émérite

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    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
    Points : 2 557
    Points
    2 557
    Par défaut
    avec un fread ou file_get_content ca te fait la meme chose ??

    en fait c pas un fichier uploader, c'est un fichier qui est relie au site, mais qui est en local ??

  5. #5
    Membre confirmé Avatar de Christophe Charron
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    920
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 920
    Points : 606
    Points
    606
    Par défaut
    Citation Envoyé par Maxoo
    avec un fread ou file_get_content ca te fait la meme chose ??

    en fait c pas un fichier uploader, c'est un fichier qui est relie au site, mais qui est en local ??
    Pas essayé file_get_content
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    //  Lecture du fichier
      $vf_c_fp = fopen($vf_c_emplacement,"r")  or die ("impossible d'ouvrir le fichier!".$vf_c_emplacement);
      $vl_e_taille=filesize($vf_c_emplacement);
      $vl_c_data = fread($vf_c_fp,$vl_e_taille);
      fclose($vf_c_fp);
      $vl_c_data = addslashes($vl_c_data);
      $sql_req = "INSERT INTO...
    j'insere dans un blob mysql ...
    Le fread fonctionne bien, du moment que le fopen a fonctionné. Et lefopen n'aime pas les accents, a priori ...

  6. #6
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Tu dis l'utilisateur fait ce qu'il veut donc c'est lui qui upload ou qui choisit le nom du fichier?
    Dans ce cas fait un regex sur le nom du fichier et affiche une erreur si c'est un nom de p.... de c.... ^^

  7. #7
    Membre confirmé Avatar de Christophe Charron
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    920
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 920
    Points : 606
    Points
    606
    Par défaut
    Citation Envoyé par Anduriel
    Tu dis l'utilisateur fait ce qu'il veut donc c'est lui qui upload ou qui choisit le nom du fichier?
    Oui il upload le fichier qu'il veut, mais ce n'est peut-être pas lui qui l'a nommé comme cela ...
    Dans ce cas fait un regex sur le nom du fichier et affiche une erreur si c'est un nom de p.... de c.... ^^
    C'est ce qui va finir par arriver ... personne ne connait la manip pour lui envoyer du 380 dans les doigts par la même occasion ?

    Mais bon, j'espérais que PHP savait pallier aux folies windowsiennes ...

  8. #8
    Membre régulier Avatar de luggerhouse
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2006
    Messages : 62
    Points : 73
    Points
    73
    Par défaut
    Bon, ca ca fonctionne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    echo "Ouvrir un fichier avec accent<br>\n";
    $img=utf8_encode("élo");
    //$img="elo";
    $fp = fopen($img,"r")  or die ("impossible d'ouvrir le fichier!".utf8_decode($img));
    Par contre je ne peux dire pourquoi

    Alors que PERSONNE NE LE DEMANDE LOL
    LuggerHouse

  9. #9
    Membre confirmé Avatar de Christophe Charron
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    920
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 920
    Points : 606
    Points
    606
    Par défaut
    Citation Envoyé par luggerhouse
    Bon, ca ca fonctionne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    echo "Ouvrir un fichier avec accent<br>\n";
    $img=utf8_encode("élo");
    //$img="elo";
    $fp = fopen($img,"r")  or die ("impossible d'ouvrir le fichier!".utf8_decode($img));
    Par contre je ne peux dire pourquoi

    Alors que PERSONNE NE LE DEMANDE LOL
    LuggerHouse
    Ben moi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    //  Lecture du fichier
      $vf_c_solucebizarre=utf8_encode($vf_c_emplacement);
      $vf_c_fp = fopen($vf_c_solucebizarre,"r")  or die ("impossible d'ouvrir le fichier!".$vf_c_emplacement);
      $vl_e_taille=filesize($vf_c_solucebizarre);
      $vl_c_data = fread($vf_c_fp,$vl_e_taille);
    ca ne fonctionne pas ...

  10. #10
    Membre régulier Avatar de luggerhouse
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2006
    Messages : 62
    Points : 73
    Points
    73
    Par défaut
    Citation Envoyé par Christophe Charron
    Ben moi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    //  Lecture du fichier
      $vf_c_solucebizarre=utf8_encode($vf_c_emplacement);
    ca ne fonctionne pas ...
    Comment remplis tu ta variable $vf_c_emplacement ??
    C'est probablement là qu'il faudrait encoder...
    Et il serait aussi intéressant d'avoir le output du script (ou le nom du fichier...)

  11. #11
    Membre confirmé Avatar de Christophe Charron
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    920
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 920
    Points : 606
    Points
    606
    Par défaut
    Citation Envoyé par luggerhouse
    Comment remplis tu ta variable $vf_c_emplacement ??
    C'est probablement là qu'il faudrait encoder...
    Et il serait aussi intéressant d'avoir le output du script (ou le nom du fichier...)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     s="";
     s +="vf_e_doc_cleunik="+encodeURIComponent(vf_e_doc_cleunik)+"&";
     s +="vf_c_emplacement="+encodeURIComponent(fa_gid("tb_emplacement").value)+"&";
     s +="vf_c_titre="+encodeURIComponent(fa_gid("tb_titre").value)+"&";
     s +="vf_c_descriptif_sommaire="+encodeURIComponent(fa_gid("tb_descriptif_sommaire").value)+"&";
     s +="vf_c_action="+encodeURIComponent(vf_c_action)+"&";
     fa_xmlhttprequest_txt(vf_c_script_bdope_doc,s,pf_fin_requete);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function fa_xmlhttprequest_txt(url,request,callback,target)
    {
        var http = new XMLHttpRequest();
        if(!request){mode="GET";} else {mode="POST";}
        http.open(mode,url,true);
        if(mode=="POST"){http.setRequestHeader('Content-Type','application/x-www-form-urlencoded');}
        http.onreadystatechange=function(){if(http.readyState==4){callback(http.responseText,target);}};
        http.send(request);
    }

  12. #12
    Membre confirmé Avatar de Christophe Charron
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    920
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 920
    Points : 606
    Points
    606
    Par défaut
    Et j'ai oublié de dire que tout les sources étaient codés en utf-8

Discussions similaires

  1. Lecture fichier CSV contenant des caractères accentués
    Par enicnath dans le forum Général Python
    Réponses: 25
    Dernier message: 24/03/2015, 12h10
  2. Afficher les fichiers qui contiennent des caractères accentués
    Par jejeman dans le forum Shell et commandes GNU
    Réponses: 9
    Dernier message: 02/10/2012, 10h35
  3. [AC-2003] Import de fichier CSV => Modification des caractères accentués
    Par Kloun dans le forum Access
    Réponses: 5
    Dernier message: 05/01/2011, 17h12
  4. Noms de fichiers avec des caractères spéciaux
    Par weabow dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 24/11/2010, 15h51
  5. [Upload] Nom de fichier avec nom accentué
    Par MacReiben dans le forum Langage
    Réponses: 1
    Dernier message: 15/09/2008, 19h50

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