Probleme d'affichage de taille de fichier

Résolu/Fermé
Nerd29 Messages postés 19 Date d'inscription vendredi 26 décembre 2008 Statut Membre Dernière intervention 9 septembre 2016 - 10 août 2016 à 09:53
Nerd29 Messages postés 19 Date d'inscription vendredi 26 décembre 2008 Statut Membre Dernière intervention 9 septembre 2016 - 10 août 2016 à 13:50
Bonjour,

Voila mon soucis, j'ai crée une page html/php avec un tableau listant les fichiers d'un répertoire de mon serveur Linux.
Dans ce tableau je souhaiterai afficher la taille des fichiers listés.

J'ai utilisé plusieurs méthode et à chaque fois j'arrive au même résultat, cela ne marche que sur certains fichiers, les autres retourne vide .... (Pourtant avec des tailles équivalente, inférieur et supérieur, et de même type).

J'ai essayé avec les fonctions filesize(monFichier), ou exec("du -f monFichier").

voila un extrait de mon code php :

while(false !== ($fichier = readdir($dossier))) // je boucle sur chaque élément du dossier
{
echo '<tr> ';
echo '<td><a href="./partage/' . $fichier . '" rel="nofollow" target="_blank" download="'.$fichier.'">' . $fichier . '</a></td>'; // ici j'affiche le nom du fichier sur la premiere colonne

$type = filetype($fichier); // recuperation du type
$taille = filesize($fichier); // recuperation de la taille

//affichage dans le tableau
echo '<td>'.$taille.'</td>';
echo '<td>'.$type.'</td>';

echo '</tr>';


}


voici une capture du résultat :




Merci d'avance.
A voir également:

2 réponses

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
10 août 2016 à 12:25
Quelle est la valeur de la variable $dossier ?

Le problème peut simplement venir du chemin vers le fichier qui semble incorrect si le dossier parcouru n'est pas le dossier où est exécuter le script, ce qui expliquerait l'affichage du poids de certains fichiers si le dossier où est exécuté le script contient des noms de fichier identiques au dossier parcouru par le script.

Donc essaye de renseigner le chemin vers le fichier comme ceci :
$taille = filesize($dossier . $fichier);
// ou comme ceci si la variable $dossier ne contient pas d'antislash à la fin du chemin :
$taille = filesize($dossier . '/' . $fichier);


La fonction filesize renvoie la valeur false en cas d'erreur, ce qui semble être le cas vu l'affichage de ton tableau (echo false n'affiche rien).
Tu peux donc également faire ce test pour vérifier si il y a une erreur :
$taille = filesize($fichier);

if ($taille === false) {
    echo 'Erreur filesize : php doit générer un warning expliquant la cause de l\'erreur';
}
2
Nerd29 Messages postés 19 Date d'inscription vendredi 26 décembre 2008 Statut Membre Dernière intervention 9 septembre 2016
10 août 2016 à 13:50
AAAAAAH merci !

Effectivement c’était bien ça, le script que j’exécute se situe au dessus du répertoire que je lis, en ajoutant le chemin du dossier avant le fichier, il a bien trouvé les tailles.

Bravo, c’était pas évident a trouver comme ça.

Encore merci.
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
10 août 2016 à 11:18
Salut,

Essaye d'activer l'affichage des erreurs php en ajoutant ces deux lignes au début de ton script php :
ini_set('display_errors', true);
error_reporting(E_ALL);


As tu des erreurs PHP suite à cette activation ?

Bonne journée,
0
Nerd29 Messages postés 19 Date d'inscription vendredi 26 décembre 2008 Statut Membre Dernière intervention 9 septembre 2016
10 août 2016 à 11:23
Non aucune erreurs :/
0
codeurh24 Messages postés 761 Date d'inscription samedi 29 mars 2014 Statut Membre Dernière intervention 8 septembre 2018 123
10 août 2016 à 11:38
je n'ais pas la réponse mais je pense qu'il serais bien de fournir la version que tu utilise.
- windows pro 32Bits vista ?
- wamp ? version ?
- php version ?

quesce que contient php.ini ?
0
codeurh24 Messages postés 761 Date d'inscription samedi 29 mars 2014 Statut Membre Dernière intervention 8 septembre 2018 123 > codeurh24 Messages postés 761 Date d'inscription samedi 29 mars 2014 Statut Membre Dernière intervention 8 septembre 2018
Modifié par codeurh24 le 10/08/2016 à 11:46
j'avais pas vue que tu etait sur un serveur linux mais il manque quand meme des informations je pense, comme par exemple les droits
0
Nerd29 Messages postés 19 Date d'inscription vendredi 26 décembre 2008 Statut Membre Dernière intervention 9 septembre 2016 > codeurh24 Messages postés 761 Date d'inscription samedi 29 mars 2014 Statut Membre Dernière intervention 8 septembre 2018
10 août 2016 à 11:54
Bonjour,

Je suis en 775 sur tout le répertoire.

Php est en version 5.3.3 et mon serveur web tourne sur Centos 6.8 avec apache.

Je n'ai pas touché au php.ini donc il est par défaut.
0
codeurh24 Messages postés 761 Date d'inscription samedi 29 mars 2014 Statut Membre Dernière intervention 8 septembre 2018 123
10 août 2016 à 12:04
esce que les script php sont exécuter en admin ?
0