Script php pour connaitre la taille fichier

Fermé
Utilisateur anonyme - 19 sept. 2010 à 17:30
 Utilisateur anonyme - 21 sept. 2010 à 14:31
Bonjour,
je recherche un script php qui permetterais de voir la taille d'un groupe de fichier donné : je fais du sous hébergement en sous-dmaine depuis peux, et j'aimerais que l'hébergement soit au maximum de 40Mo, pour cela, je recherche le moyen avec un script php de cherche la taille du groupe de fichier du site, et qu'il soit afficher ainisi que la liste des fichiers. J'ai déjà créer un script php qui afficherra des stats et une bare de progression de la taille, mais je ne sais pas comment faire pour créer un moyen de cherche la taille, donc, si qqu avait un bon script php (ou asp, aspx; cgi, etc...) se serait cool. Si des modifs sont néscéssaire pour qu'il colle à la perfection avec mon site, ya pas de problèmes, mais je suis short au niveau du temps. Et j'ai encore environ 60 pages à finir, donc pas le temps de faire cette portion là. Merci de vos futures réponses.


A voir également:

6 réponses

Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
19 sept. 2010 à 20:02
Bonjour,

T'as de la chance, j'ai fait un script comme ça pour mon site :)
// Calcul la taille d'un répertoire (avec ou sans les sous-dossiers)
function calculeTaille($dir, $recursif = true)
{
	$taille = 0;
	if ($dh = opendir($dir))
		while (($f = readdir($dh)) !== false)
			if ($f !== '.' && $f !== '..')
			{
				$file = $dir."/".$f;
				if (is_file($file))
					$taille += filesize($file);
				else if (is_dir($file) && $recursif)
					$taille += calculeTaille($file);
			}
	return $taille;
}

// Transforme un nombre en nombre d'octets avec unité adaptée
function formateOctets($nombre)
{
	$resultat = "";
	$unites = array('o', 'Kio', 'Mio', 'Gio', 'Tio');
	$nbUnitesConnues = sizeof($unites);
	$i = 0;
	$nombreTemp = $nombre;
	while ($i < $nbUnitesConnues && ($nombreTemp >= 1))
	{
		$resultat = "$nombreTemp ".$unites[$i];
		$nombreTemp = floor($nombreTemp / 102.4) / 10;
		$i++;
	}
	return $resultat;
}

$taille = formateOctets(calculeTaille('.', true));

echo "$taille utilisés";

N'hésite pas si tu as des questions.

Xavier
4
Tu veux la taille d'un répertoire ou la taille d'un fichier?
0
Utilisateur anonyme
19 sept. 2010 à 18:58
d'un répertoire.
0
Utilisateur anonyme
19 sept. 2010 à 23:00
merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
19 sept. 2010 à 23:05
Comment faire pour voir apparaître la liste des fichiers (mersi bcp, ce marche très bien)
0
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
20 sept. 2010 à 11:16
Dans la boucle qui parcourt les fichiers, rajoute
echo $file;
N'hésite pas à signaler que ton problème est résolu, et à marquer les solutions qui te conviennent !
0
Utilisateur anonyme
20 sept. 2010 à 19:12
Désolé mais ca ne marche pas, il est possible que je me sois tromper, voici le code avec le echo :


<?php
// Calcul la taille d'un répertoire (avec ou sans les sous-dossiers)
function calculeTaille($dir, $recursif = true)
{
$taille = 0;
if ($dh = opendir($dir))
while (($f = readdir($dh)) !== false)
if ($f !== '.' && $f !== '..')
{
$file = $dir."/".$f;
if (is_file($file))
$taille += filesize($file);
else if (is_dir($file) && $recursif)
$taille += calculeTaille($file);
echo '$file';
}
return $taille;
}

// Transforme un nombre en nombre d'octets avec unité adaptée
function formateOctets($nombre)
{
$resultat = "";
$unites = array('o', 'Kio', 'Mio', 'Gio', 'Tio');
$nbUnitesConnues = sizeof($unites);
$i = 0;
$nombreTemp = $nombre;
while ($i < $nbUnitesConnues && ($nombreTemp >= 1))
{
$resultat = "$nombreTemp ".$unites[$i];
$nombreTemp = floor($nombreTemp / 102.4) / 10;
$i++;
}
return $resultat;
}

$taille = formateOctets(calculeTaille('.', true));

echo "$taille utilisés";
?>
0
Utilisateur anonyme
20 sept. 2010 à 19:40
c'est bon, j'ai trouver le problème, j'ai mis des guillemets alors qui fallait pas.
0
Utilisateur anonyme
20 sept. 2010 à 22:17
comment ferais-tu, pour que cela affiche également chaques fichier avec la taille de chaques fichier, car je suis franchement à la bourre.
0
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
21 sept. 2010 à 09:08
Tu pousses un peu là quand même ! T'as tout ce qu'il te faut sous la main...
            if ($f !== '.' && $f !== '..')
            {
                $file = $dir."/".$f;
                if (is_file($file))
                {
                    $taille += filesize($file);
                    echo "$file......" . formateOctets(filesize($file));
                }
                else if (is_dir($file) && $recursif)
                {
                    $taille += calculeTaille($file);
                    echo "$file......" . formateOctets(calculeTaille($file));
                }
            }
0
Utilisateur anonyme
21 sept. 2010 à 13:15
merci bcp, je n'ai plus besoin de rien
0
Utilisateur anonyme
21 sept. 2010 à 14:31
Donc c'est fni
0