Mephisto Posted August 21, 2008 Share Posted August 21, 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 Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.