Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Filesize liefert falsche größe

Frage Entwicklung PHP

Mitglied: ThorstenFritz

ThorstenFritz (Level 1) - Jetzt verbinden

03.06.2008, aktualisiert 04.06.2008, 6910 Aufrufe, 4 Kommentare

Problem mit der Funktion Filesize bei Dateien größer 5GB.

Hallo zusammen,

wie schon eingangs beschrieben liefert mit die Funktion filesize eine flaschen wert. Das aber auch nur bei Dateien (.zip) die ca. 5GB oder größer sind. Nachdem ich etwas gesucht habe, bin ich auf den Hinweis gestoßen die Funktion filesize() mit sprintf("%u", filesize($filename)) zu formatieren. Leider geht das nur mit Dateien zwischen 2GB und 4GB. Hat da jemand einen Tip für wie ich das Problem lösen kann oder gibt es eine andere Möglichkeit die Dateigröße zu ermitteln? Für Hilfe wäre ich dankbar.

apache 1.3
php 5.2.6

Mit freundlichen Grüßen
Thorsten
Mitglied: EvilMoe
03.06.2008 um 21:44 Uhr
Ich benutze dafür immer diese Funktion.
01.
<?php 
02.
function viewsize($size){ 
03.
      $kb = 1024; 
04.
      $mb = 1024 * $kb
05.
      $gb = 1024 * $mb
06.
      $tb = 1024 * $gb;  
07.
       
08.
      if($size < $kb
09.
         return $size.' B'
10.
      if($size < $mb
11.
         return round($size/$kb,2).' KB'
12.
      if($size < $gb
13.
         return round($size/$mb,2).' MB'
14.
      if($size < $tb
15.
         return round($size/$gb,2).' GB'
16.
      return round($size/$tb,2).' TB'
17.
   } // function - viewSize 
18.
?>
Bitte warten ..
Mitglied: ThorstenFritz
03.06.2008 um 22:09 Uhr
Hallo EvilMoe,

danke für deine Antwort, aber ich glaube das kann ich leider nicht verwenden.

Ich hole mal kurz aus.

Wenn ich mit der Funktion filesize($file) die Größe eine Datei feststellen möchte die als Zip File eine Größe von 5.4GB hat, liefert mir die Funktion nur einen Wert von 1.4GB und somit eine falsche Ausgangsgröße.

Deshalb glaube ich das ich deinen Vorschlag nicht verwenden kann, oder ich verstehe mal gerade nichts bzw. wie wird die Variable $Size in deinem Code gefüllt.

Ich brauche die genaue Dateigröße für einen Download. Ich habe die Syntax gerade nicht genau im Kopf, aber die Dateigröße wird mit der header(content-filesize .... ) Funktion gesetzt.
Bitte warten ..
Mitglied: EvilMoe
03.06.2008 um 22:53 Uhr
Sorry dann hatte ich dich falsch verstanden. Ich konnte bei php.net einiges drüber finden. Am besten probierst du selber mal einiges aus und gibst uns dann eine Rückmeldung.

http://de.php.net/filesize

Fand sowas zb. interessant vielleicht gehts ja.
01.
the fastest way to get the correct filesize in windows an linux would be this: 
02.
 
03.
<?php 
04.
  echo sprintf("%u", filesize($file)); 
05.
?> 
06.
 
07.
It prints the result of filesize as UNSIGNED INT so it can be until 4GB. 
08.
The reason is, SIGNED INT runs until 2GB and flips to -2GB watch following: 
09.
 
10.
file<2GB      = SIGNED:  1048576512 UNSIGNED: 1048576512 
11.
file>2GB      = SIGNED: -2100140103 UNSIGNED: 2194827193 
12.
file<4GB      = SIGNED:  -100662784 UNSIGNED: 4194304512 
13.
 
14.
p.s. I found this at: http://www.php.net/manual/en/function.filesize.php
Bitte warten ..
Mitglied: ThorstenFritz
04.06.2008 um 06:14 Uhr
Hallo EvilMoe,

danke für deine Antwort, ich werd mal schauen ob ich etwas brauchbares finden kann. Melde mich dann.
Bitte warten ..
Ähnliche Inhalte
SAN, NAS, DAS
gelöst Kann man auf einer QNAP NAS die Größe eines Freigabeordners beschränken? (2)

Frage von Sinzal zum Thema SAN, NAS, DAS ...

Datenschutz
HP liefert (k)ein Update für mitlesenden Audiotreiber (3)

Link von BassFishFox zum Thema Datenschutz ...

Viren und Trojaner
USB-Sticks: IBM liefert Installationsmedien mit Malware aus

Link von Kraemer zum Thema Viren und Trojaner ...

Neue Wissensbeiträge
Heiß diskutierte Inhalte
Windows Systemdateien
NTFS und die Defragmentierung (26)

Frage von WinLiCLI zum Thema Windows Systemdateien ...

LAN, WAN, Wireless
Zwei Subnetze mit je eigenem Router und Internetzugang verbinden (18)

Frage von hannsgmaulwurf zum Thema LAN, WAN, Wireless ...

Windows Server
WIndows Server 2016 core auf dem Intel NUC NUC5i5RYK i5 5250U (17)

Frage von IxxZett zum Thema Windows Server ...