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
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
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
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden