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] Certains fichiers n'apparaissent pas


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 37
    Par défaut [Upload] Certains fichiers n'apparaissent pas
    Bonjour,

    Lorsque je "scanne" un répertoire à la recherche de l'ensemble des fichiers présents, certains fichiers ne sont pas reconnu comme tel par la fonction is_file(). Les fichiers .php sont reconnus comme étant des fichiers, par contre les fichiers .exe ne le sont pas. Le répertoire scanné est sous Windows "C:\Program Files\EasyPHP1-8\www\marketing\uploaded_files\".

    Je ne comprends pas pourquoi ?
    Cela provient-il des droits des fichiers ? Y'a-t-il une limitation sur les extensions ? Y'a-t-il d'autres causes possibles ?

    D'avance merci de votre aide.

    Alex.

  2. #2
    Membre émérite
    Avatar de viviboss
    Profil pro
    Inscrit en
    Août 2006
    Messages
    943
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2006
    Messages : 943
    Par défaut
    Heuuuu je ne suis pas sur qu'un .exe soit un File...

    Tout comme un .zip, d'ailleur.... Ou tout autre chose qui n'est pas un "fichier texte"...

    Voilà ce que dit la doc :

    is_file — Indique si le fichier est un véritable fichier
    ...Donc je pense que c'est normale qu'il ne le voit pas avec cette fonction
    Veni Vidi Vici
    -------------------------
    Mes articles : developpez.com ou bien vbview.net
    -------------------------
    Et SURTOUT ne pas oublier la bible PHP : --> php_manual_fr.chm!!!
    Et aussi : --> pear_manual_fr.chm!!!

    Ou encore : --> Les tutoriaux & cours PHP de Développez.com
    -------------------------

  3. #3
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 37
    Par défaut
    Merci pour la réponse, cela voudrait dire que je ne peux pas faire de manipulation sur des fichiers autres que des fichiers textes ??? Si je permets l'upload d'un fichier Excel par exemple, lorsque j'affiche la liste des fichiers du répertoire, je ne verrai pas mon fichier Excel. (car le problème se pose aussi avec les fichiers Excel...)
    Dans ce cas, quelle fonction dois-je utiliser pour différencier mes sous-dossier de mes fichiers ?
    Merci.

  4. #4
    Membre émérite
    Avatar de viviboss
    Profil pro
    Inscrit en
    Août 2006
    Messages
    943
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2006
    Messages : 943
    Par défaut
    Et bien si, un fichier Excell comme un .doc, d'ailleurs, sont considiérés comme des fichiers....

    Il faut que tu fasses la différence entre une application (.EXE : code compilé) et un fichier, qui est généralement la résultante d'"un traitement par application :

    Une image est un fichier, ainsi que du Excell, du Word, du Open Office, etc....

    PS : un fichier Excell est en .XLS, et pas en .EXE !!!!

    PPS : pour déterminer le type réelle d'un fichier, il faudrait que tu vérifie les MIME type de ceux ci
    Veni Vidi Vici
    -------------------------
    Mes articles : developpez.com ou bien vbview.net
    -------------------------
    Et SURTOUT ne pas oublier la bible PHP : --> php_manual_fr.chm!!!
    Et aussi : --> pear_manual_fr.chm!!!

    Ou encore : --> Les tutoriaux & cours PHP de Développez.com
    -------------------------

  5. #5
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 37
    Par défaut
    Désolé mais je me suis mal exprimé toute à l'heure. Je voulais ajouter suite à ta remarque qu'en plus des fichiers .exe, mes fichiers .xls ne sont pas plus reconnu. (alors même que comme tu l'indiques, il le devrait puisque considéré comme des fichiers 'textes'). Le problème se pose avec beaucoup d'autres types de fichiers, et même des fichiers textes (.txt) !!!

    La fonction is_file ne considère pas ces fichiers Excel ou Textes comme étant des fichiers... Ou alors le problème vient d'ailleurs.

    J'avais pensé à un problème de droits, vu que je déplaçais les fichiers via l'explorateur dans un premier temps afin de tester la boucle qui permettait de faire l'affichage. Mais le problème se présente également si je fais un upload par le "code" (avec la fonction move_uploaded_file).

    Le répertoire contient des fichiers .php, .inc, .txt, .exe, .xls et lorsque j'affiche le contenu, seuls certains des fichiers .php "sortent".

    Voici la fonction qui permet de "scanner" le répertoire.


    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
     
    //creation d'un tableau contenant l'ensemble des fichiers
    if (is_dir($chemin_rep))
    {
    	//ouverture du repertoire
    	if ($rep = opendir($chemin_rep)) 
    	{
    		//lecture des fichiers du repertoire
    		while (($file = readdir($rep)))
    		{
    			//constitution d'une ligne d'un tableau contenant les elements du fichier
    			if (is_file($file)) $tab_fic[] = array($file, filemtime($file), filesize($file));
    		}
    	}
    	//fermeture du repertoire et tri du tableau par date
    	closedir($rep);
    	$resultat = $tab_fic;
    }

    Cette fonction me constitue un tableau avec l'ensemble des fichiers du répertoire, ainsi que les attributs choisis.

    Ensuite j'affiche le tout dans une table en faisant une boucle sur les élements de ce tableau
    (pour info, f_affiche_un fichier ecrit une ligne <tr><td>....</tr></td>)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $tab_fic = f_ret_tab_liste_fichier($chemin_rep); //la fonction = code ci-dessus
    if (is_array($tab_fic)) 
    {
    	foreach($tab_fic as $element) 
    	{
    		f_affiche_un_fichier($element, $fl_access);
    	}
    }
    Y'a-t-il un problème (autre qu'un problème d'extension) lors du scan ?

    Merci.

  6. #6
    Membre émérite
    Avatar de viviboss
    Profil pro
    Inscrit en
    Août 2006
    Messages
    943
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2006
    Messages : 943
    Par défaut
    Essaye ca pour voir :

    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
     
    //creation d'un tableau contenant l'ensemble des fichiers
    if (is_dir($chemin_rep))
    {
    	//ouverture du repertoire
    	if ($rep = opendir($chemin_rep)) 
    	{
    		//lecture des fichiers du repertoire
    		while (($file = readdir($rep)))
    		{
    			//constitution d'une ligne d'un tableau contenant les elements du fichier
    			if (is_file($file)) {
                                     print_r($file);
                              }
    		}
    	}
    	//fermeture du repertoire et tri du tableau par date
    	closedir($rep);
    }
    Déjà, si je peux te conseiller de bien former tes if avec des accolades et une indentation, cela te sera plus lisible, et limitera les erreurs...

    Essaye ca, puis sans la condition pour voir (sans le is_file)

    Dis moi ce que ca fait
    Veni Vidi Vici
    -------------------------
    Mes articles : developpez.com ou bien vbview.net
    -------------------------
    Et SURTOUT ne pas oublier la bible PHP : --> php_manual_fr.chm!!!
    Et aussi : --> pear_manual_fr.chm!!!

    Ou encore : --> Les tutoriaux & cours PHP de Développez.com
    -------------------------

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

Discussions similaires

  1. Erreur Upload certains fichiers
    Par lr.remy dans le forum ASP.NET MVC
    Réponses: 1
    Dernier message: 08/04/2015, 14h59
  2. Réponses: 11
    Dernier message: 12/04/2011, 17h30
  3. [CKEditor] IE et FF l'upload de fichier ne marche pas sous FF
    Par corde dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 08/05/2007, 11h10
  4. certaines icones n'apparaissent pas
    Par flo456 dans le forum Autres Logiciels
    Réponses: 7
    Dernier message: 21/02/2007, 16h21

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