Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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? :D

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 von dgr243

  • Autor

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 :)

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.