Comment faire afficher la taille d'un fichier ?

[Résolu]
Signaler
Messages postés
182
Date d'inscription
mardi 8 janvier 2002
Statut
Membre
Dernière intervention
2 octobre 2012
-
Messages postés
3706
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
-
Salut @ tous et @ toute

je voudrais renvoyer la taille d'un fichier en octet sur une page.
au lieu de le faire à la main à chaque fichiers que je met en téléchargement, je voudrais faire afficher la taille sur une page pour donner l'info à l'user.

Merci de votre aide.

10 réponses

Messages postés
1980
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
24 septembre 2012
5
tu veux surement la fonction filesize() ?
Messages postés
182
Date d'inscription
mardi 8 janvier 2002
Statut
Membre
Dernière intervention
2 octobre 2012

tu aurais un exemple ?
tu sais moi et le php c'est encore l'inconu...
je sais ajouter/modifier des scripts php mais je saurais pas aller plus loint sans la création pur.

Alors si tu as un exemple concrét, ca serait cool. En plus tu ferais partager ton savoir faire avec la communauté
Merci
Messages postés
182
Date d'inscription
mardi 8 janvier 2002
Statut
Membre
Dernière intervention
2 octobre 2012

c'est bon j'ai trouvé:



<?php
$nom_du_fichier = '/download/lundi/monfichier.zip'; //Emplacement du fichier
echo $filename . ': ' . filesize($nom_du_fichier) . ' octets'; // Affiche la taille en octets
?>

A bientot tous 
Messages postés
11
Date d'inscription
lundi 3 février 2003
Statut
Membre
Dernière intervention
27 juin 2006

Salut,

Pour connaître le poids, tu peux utiliser la fonction filesize.
la taille est alors retournée en octet.

exemple pour un fichier déjà téléchargé :
$file="sous_rep/nom__du_fichier";
$size = (filesize($file)/1000);
echo $size;

Exemple pour un fichier que tu viens d'uploader (j'ai trouvé ça chez qq mais je sais plus qui) :
$dest_rep="sous_repertoire/";
$nom_file=$_FILES['file_name']['name'];
if(file_exists($dest_rep.$nom_file))
{
$nom_img = preg_replace("/\.([a-zA-Z]{3,4})$/i", "_".time().".\\1", $nom_file);
}
if (move_uploaded_file($_FILES['file_name']['tmp_name'], $dest_rep.$nom_file))
{
echo "Taille :$_FILES['file_name']['size']/1024 Ko
}

paul_arnaud
Messages postés
182
Date d'inscription
mardi 8 janvier 2002
Statut
Membre
Dernière intervention
2 octobre 2012

merci paul_arnaud pour la parti Upload
j'en avais pas besoin mais ca me donne une idée.

Merci à tous et bonne route
Messages postés
87
Date d'inscription
vendredi 29 août 2003
Statut
Membre
Dernière intervention
19 mai 2006

Un autre moyen de le faire est egalement

$urlfichier = 'tonchemindaccesaufichier';
if(filesize($urlfichier) >= '1048576')
{
echo('le fichier fait : '.((filesize($urlfichier))/1048576).' Mo');
}
elseif(filesize($urlfichier) >= '1024')

{

echo('le fichier fait : '.((filesize($urlfichier))/1024).' Ko');

}
else

{


echo('le fichier fait : '.filesize($urlfichier).' o');


}
Ca te permet d'afficher la taille du fichier en Mo ou en ko ou en o en fonction de sa taille (j'ai pas coder pour le Go ni pour le To mais je pensais pas que c'etait utile parce que je pense que tu obtient un timeout sur la fonction filesize de toute facon mais si tu veux la rajouter c'est pas bien dur !

Superbaloo
Superbaloo
Messages postés
182
Date d'inscription
mardi 8 janvier 2002
Statut
Membre
Dernière intervention
2 octobre 2012

Merci superbaloo78
d'autres exemples comme le tien ce trouve sur le site Off de php ;-) mais merci pour ceux qui souhaitent reprendre ton exemple.
Messages postés
32
Date d'inscription
lundi 14 octobre 2002
Statut
Membre
Dernière intervention
7 juillet 2007

Je m'embétait alors j'ai fait ca, si ca peut te servir...

J'en profite pour signaler qu'il existe la fonction stat() qui retourne
différentes infos sur le fichiers, comme la taille, la date de
modification, la date du dernier accès...



<?

$o=Array(" o"," Ko"," Mo"," Go"," To"); // tableau pour les unités

$fstat stat($file); //appel de la fonction stat, on peut aussi remplacer par $fstat["size"] filesize($urlfichier);

$taille= ($fstat["size"]!=0) ?
round($fstat["size"]/pow(1024,floor(log($fstat["size"])/log(1024))),2).$o[floor(log($fstat["size"])/log(1024))]
: "0 o";

echo $taille;
?>



hum, cherchez pas trop à comprendre, ca marche...

Ca sert paut-ètre à rien, je me suis peut-ètre compliqué la vie pour rien , mais j'ADORE me compliquer la vie
Messages postés
4
Date d'inscription
mardi 4 février 2003
Statut
Membre
Dernière intervention
16 janvier 2009

Sinon j'ai fait une fonction qui fait ça et qui reprend un peu le code proposé par ZuGbEn :
Afficher l'unité d'une taille de fichier
Messages postés
3706
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
Salut,

Juste une remarque sur le commentaire de superbaloo78 :
j'ai pas coder pour le Go ni pour le To mais je pensais pas que c'etait utile parce que je pense que tu obtient un timeout sur la fonction filesize de toute facon

=>
A mon avis la taille du fichier ne change strictement rien car il n'y a pas chargement de ce fichier. Que tu fasses un filesize sur un fichier de 12o ou de 120000 To reviendra au même.

Cordialement,


Kohntark -