[PHP] Erreur conversion taille en Ko [Résolu]

Erreur conversion taille en Ko [Résolu] [PHP] - PHP - Programmation

Marsh Posté le 22-08-2008 à 13:32:55    

Bonjour
 
Bon je suis un peu débutant en PHP et j'essay de faire un formulaire d'upload de fichier.
 
Voilà,  j'ai un problème lorsque j'essaye de récupérer la taille d'un fichier venant d'être uploadé pour la convertir en Ko.
 
Voici mon code :  
 

Code :
  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2. <?php
  3. echo "<font size='2' color='green'><i>";
  4. echo "Version PHP courante : " . phpversion();
  5. echo "<br></font></i><br>";
  6. echo"<font color='blue'>";
  7. echo "<font color='red' size='3'><u>Le fichier a bien été uploadé, voici les détails</u> :</font><br>";
  8. Echo "<font color='black'>File name : </font>";       
  9. Echo $_FILES['fichier']['name'];
  10. Echo "<br>";
  11. Echo "<font color='black'>Temp file name : </font>";   
  12. Echo $_FILES['fichier']['tmp_name'];
  13. Echo "<br>";
  14. Echo "<font color='black'>File type : </font>";       
  15. Echo $_FILES['fichier']['type'];
  16. Echo "<br>";
  17. Echo "<font color='black'>File size : </font>";
  18. Echo $_FILES['fichier']['size'] ."Byt";
  19. Echo "<br>";
  20. ********************************
  21. $taille_ko = filesize($_FILES['fichier']);
  22. $ko = $taille_ko/1024;
  23. echo "$ko";
  24. ********************************
  25. C'est là que je bloque je sais pas si c'est faisable, mais vous voyez ce que je veux faire ? 
  26. Echo "<font color='black'>Registered errors : </font>";       
  27. Echo $_FILES['fichier']['error'];
  28. Echo "<br><br>";   
  29. Echo "</font>";
  30. if( isset($_POST['upload']) ) // si formulaire soumis
  31. {
  32.     $content_dir = 'upload/'; // dossier où sera deplace le fichier
  33.     $tmp_file = $_FILES['fichier']['tmp_name'];
  34.     if( !is_uploaded_file($tmp_file) )
  35.     {
  36.         exit("Le fichier est introuvable" );
  37.     }
  38.     // on verifie maintenant l'extension
  39.     // $type_file = $_FILES['fichier']['type'];
  40. //
  41.     // if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') )
  42.     // {
  43.     // exit("Le fichier n'est pas une image" );
  44.     // }
  45. //
  46.     // on copie le fichier dans le dossier de destination
  47.     $name_file = $_FILES['fichier']['name'];
  48.     $size_file = $_FILES['fichier']['size'];
  49.     if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
  50.     {
  51.         exit("Impossible de copier le fichier dans $content_dir" );
  52.     }
  53. }
  54. echo "<br><a href='http://127.0.0.1/'>Visualier le fichier</a>";
  55. echo "<br><br>";
  56. $test = 15262.2255;
  57. $result = round($test, 2);
  58. echo "Test de round : " .$result. "<br><br>"; 
  59. $taille_fichier=filesize("le_fichier.txt" );
  60. $taille_ko=$taille_fichier/1024;
  61. echo "$taille_ko";
  62.  
  63. ?>


 
Merci de m'aider plz...


Message édité par RabzorGT le 15-02-2010 à 12:28:45

---------------
[VDS] Zalman, CG, HDD, P4 3.2Ghz, Switch .. - [FeedBack] [8800GTX]
Reply

Marsh Posté le 22-08-2008 à 13:32:55   

Reply

Marsh Posté le 22-08-2008 à 13:35:15    

Ah j'ai oublié le message d'erreur  
Ca marche à moitier, c'est à dire que j'ai bien la taille en bit mais la fonction filesize ne passe pas ....
 
Notice: Array to string conversion in C:\Program Files\EasyPHP 2.0b1\www\upload.php on line 28
Warning: filesize() [function.filesize]: stat failed for Array in C:\Program Files\EasyPHP 2.0b1\www\upload.php on line 28


---------------
[VDS] Zalman, CG, HDD, P4 3.2Ghz, Switch .. - [FeedBack] [8800GTX]
Reply

Marsh Posté le 22-08-2008 à 13:49:23    

D'apres l'erreur, j'essayerais filesize ($_FILES['fichier'][0])


---------------
We deserve everything that's coming...
Reply

Marsh Posté le 22-08-2008 à 14:05:36    

C'est pas mieux  [:airforceone]  j'ai  
 
Notice: Undefined offset: 0 in C:\Program Files\EasyPHP 2.0b1\www\upload.php on line 28


---------------
[VDS] Zalman, CG, HDD, P4 3.2Ghz, Switch .. - [FeedBack] [8800GTX]
Reply

Marsh Posté le 22-08-2008 à 14:10:47    

Pourquoi ne pas utiliser $_FILES['fichier']['size'], ce que tu fais à bien d'autres endroits dans ton script ???


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
Reply

Marsh Posté le 22-08-2008 à 14:11:39    

ca marche pas non plus... ou quand ca fonctionne  ca me donne la taille en byts .. je la veux en Octet


Message édité par RabzorGT le 22-08-2008 à 14:12:15

---------------
[VDS] Zalman, CG, HDD, P4 3.2Ghz, Switch .. - [FeedBack] [8800GTX]
Reply

Marsh Posté le 22-08-2008 à 14:14:22    

je suis aps sur que tu puisse faire un stat sur un fichier temporaire  
il faut que tu utilise $_FILES['fichier']['size']
 
a noter que 1 byte = 1 octet et 8 bit = 1 byte


---------------

Reply

Marsh Posté le 22-08-2008 à 14:15:31    

En Ko pardon :s c'est pluss un problème de conversion..


---------------
[VDS] Zalman, CG, HDD, P4 3.2Ghz, Switch .. - [FeedBack] [8800GTX]
Reply

Marsh Posté le 22-08-2008 à 14:17:11    

tu as la taille en octets dans $_FILES , il te suffit de la diviser par 1024 pour avoir celle en ko  
 
a moins que tu n'ai un message d'erreur


---------------

Reply

Marsh Posté le 22-08-2008 à 14:19:50    

voilà c'est exactement ça mon problème...j'arrive à récupéré la taille en octet mais quand j'essay de la convertir en ko j'ai un message d'erreur.

 

1)File size : 224725      => OK

 

2)Pour la convertir en ko j'utilise :  

 
Code :
  1. $taille_ko = filesize($_FILES['fichier']);
  2. $ko = $taille_ko/1024;
  3. echo "$ko";
 

Ca me donne cette erreur là :
Notice: Array to string conversion in C:\Program Files\EasyPHP 2.0b1\www\upload.php on line 28

 

Warning: filesize() [function.filesize]: stat failed for Array in C:\Program Files\EasyPHP 2.0b1\www\upload.php on line 28
0Registered errors : 0

 


désolé je me suis mal exprimé..

Message cité 1 fois
Message édité par RabzorGT le 22-08-2008 à 15:09:56

---------------
[VDS] Zalman, CG, HDD, P4 3.2Ghz, Switch .. - [FeedBack] [8800GTX]
Reply

Marsh Posté le 22-08-2008 à 14:19:50   

Reply

Marsh Posté le 22-08-2008 à 14:22:19    

il ne faut pas utiliser la fonction filesize ( qui s'appuie sur la fonctione stat, qui ne fonctionne pas sur les fichiers temporaires ) , mais regarder la valeur qui est dans ton tableau $_FILES []


---------------

Reply

Marsh Posté le 22-08-2008 à 14:36:02    

RabzorGT a écrit :

voilà c'est exactement ça mon problème...j'arrive à récupéré la taille en octet mais quand j'essay de la convertir en ko j'ai un message d'erreur.
 
1)File size : 224725      => OK
 
2)Pour la convertir en ko j'utilise :    
 
[ccp]$taille_ko = filesize($_FILES['fichier']);
$ko = $taille_ko/1024;
echo "$ko";[/ccp]
 
Ca me donne cette erreur là :  
Notice: Array to string conversion in C:\Program Files\EasyPHP 2.0b1\www\upload.php on line 28
 
Warning: filesize() [function.filesize]: stat failed for Array in C:\Program Files\EasyPHP 2.0b1\www\upload.php on line 28
0Registered errors : 0
 
 
désolé je me suis mal exprimé..


Tu es réellement borné et idiot ? Ou tu le fait exprès et stun joke !?


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
Reply

Marsh Posté le 22-08-2008 à 14:47:42    

Ne sois pas vulgaire.. relis mon poste
j'ai dit que je débutais..je suis pas programmeur sinon j'aurais rien demandé à personne :o


---------------
[VDS] Zalman, CG, HDD, P4 3.2Ghz, Switch .. - [FeedBack] [8800GTX]
Reply

Marsh Posté le 22-08-2008 à 14:50:09    

On t'a donné des solutions, tu ne les essayes même pas.
Là, il n'est pas question d'être développeur ! C'est une question de bon sens ! La taille en octet, tu réussi à l'afficher. Mais tu essayes d'utiliser autre chose pour le calcul de la taille en ko. On te fait remarqué que tu n'as qu'a utiliser ce que tu utilises juste avant, et tu n'essayes même pas, tu dis juste que ça ne fonctionne pas.
 
Voilà quoi !


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
Reply

Marsh Posté le 22-08-2008 à 15:04:09    

Pardon .. ça fonctionne  :pfff:  quel c***  
 
$taille_ko = $_FILES['fichier']['size'];
$bit_to_ko = $taille_ko/1024;
 
$ko = round($bit_to_ko, 2);
echo "Valeur arrondie : " .$ko. "<br><br>";  
 
Tout roule maintenant merci à tous ;)


---------------
[VDS] Zalman, CG, HDD, P4 3.2Ghz, Switch .. - [FeedBack] [8800GTX]
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed