dgr243 Geschrieben 28. Juli 2009 Geschrieben 28. Juli 2009 (bearbeitet) Moin, in einem meiner aktuellen Projekte will ich dem Benutzer angeben, wie gross eine Datei bzw. eine Sammlung von Dateien ist. Hierbei bin ich nun leider an das 2gbyte Limit gestossen. filesize(); verwendet intern wohl nur Integer und kann damit nicht mehr als 2gbyte zurückgeben. Zwar wird auf php.net einiges an Tips und "beta Patches" geboten um intern zumindest auf Doubles zu kommen und so mehr addressieren zu können, allerdings ist mit das Wort Beta da etwas .. hmm dubios. Auch die Kompilierung mit Largefile Support scheint sehr stark abhängig vom restlichen System zu sein.. Hat da schonmal wer mit diesem Problem zu tun gehabt und eine Lösung zur Hand? Irgendeine andere Idee wie ich an die korrekte Dateigröße kommen könnte, ausser sie komplett einzulesen und dabei die Zeichen zu zählen? Systemumgebung laut phpinfo();: System Linux pandora 2.6.26-1-686 #1 SMP Fri Mar 13 18:08:45 UTC 2009 i686 PHP Version 5.2.6-1+lenny3 Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny3 with Suhosin-Patch mod_ssl/2.2.9 OpenSSL/0.9.8g mod_perl/2.0.4 Perl/v5.10.0 seufzende Grüße dgr Edit: Ah selbst gefunden, dass man ja zumindest in der bash die korrekten werte findet und dann eben mit system(..) arbeiten muss.. nervig, aber dafür auf jedem system möglich /* Quelle: https://debianforum.de/forum/viewtopic.php?f=8&t=82961 */ function get_file_size($file) { if(file_exists($file) ) { $size = system("stat ".$file." | awk '/Size/ { print $2 } '"); return $size; } return false; } $size = get_file_size($dir.$file); [/php] Bearbeitet 28. Juli 2009 von dgr243 Zitieren
flashpixx Geschrieben 28. Juli 2009 Geschrieben 28. Juli 2009 Hallo, dein Posting ist etwas unverständlich. Du möchtest, wenn ich es richtig verstehe, Dateien > 2GB vom Server zum Download anbieten? Du musst dafür doch kein PHP verwenden Phil Zitieren
dgr243 Geschrieben 28. Juli 2009 Autor Geschrieben 28. Juli 2009 DAS die Files über PhP angesprochen werden müssen, hat diesen http://forum.fachinformatiker.de/skript-webserverprogrammierung/25377-sicheren-download-realisieren-2.html Grund Letztliches Problem hinsichtlich der 2gbyte Grenze von filesize(); bleibt ja aber auch dann, wenn der eigentliche Download "normal", die Wiedergabe der Dateiinformationen (mtime(),ctime(),filesize()...) aber eben über PhP realisiert wird. Der Workaround über den system() Call funktioniert aber einwandfrei Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.