Mephisto Posté(e) le 21 août 2008 Partager Posté(e) le 21 août 2008 Bonjour ! Je me retrouve confronté à un petit problème, sur un bout de code php. En effet, sur "une sorte de browser", je liste différents fichiers vidéos et, pour épurer le bordel des fichiers dont la génération a échoué, au chargement de la page, je fais un rm des fichiers dont la taille est inférieur à 24 octets. Sauf que voilà, depuis que j'ai bidouillé notre encodeur, les fichiers vidéos peuvent être très gros et, dans le cas d'un fichier de 19G (seul test que j'ai fait pour l'instant), stat me renvoi une size incohérente, et je rentre systématiquement dans la condition qui gère l'épuration. le code de debug: $fileinfos = stat($file); if ($fileinfos['size'] < 24 && !isingen($file)) // je verifie la taille, et que le fichier testé n'est pas en cours de génération echo "rm ".$path." -> ".($fileinfos['size'] < 24 ? "toto" : "tata");//exec("rm -f $path > /dev/null 2>&1 &"); sur le fichier de 19G, j'obtiens: rm /disk/export/video.avi -> toto Donc, selon vous, comment garder le même principe de fonctionnement, sans pour autant baiser 6h d'encodage à chaque refresh ? Merci ! edit: bon, c'est bien ce qui me semblait, stat est limité à 2 (ou 4, suivant les interprétations...) GB, au delà, ils proposent d'utiliser sprintf("%u", filesize($path)) (de base, filesize aussi renvoit de la merde...) ma solution: $size = system("stat -f '%z '.$path) edit2: bon, par contre, je comprends par pourquoi, il m'affiche le résultat de la commande en plus de le récupérer dans $size Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.