WinFuture-Forum.de: Filesize() - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Filesize() funktionsfehler bei dateigröße von 2,7 GB


#1 Mitglied ist offline   felisse.courage 

  • Gruppe: aktive Mitglieder
  • Beiträge: 211
  • Beigetreten: 03. April 05
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Dresden
  • Interessen:grafik-/webdesign

geschrieben 25. Mai 2007 - 18:44

grüße euch!

ich lasse auf meiner seite mit folgendem script ein verzeichnis auslesen und dessen dateien mit name und dateigröße auflisten.
<?php
function fs_convert ($datei, $nachkommastellen = 0) {
	$size = filesize($datei);
	if($size >= 1073741824) {
		return round($size/(1073741824), $nachkommastellen)." GB";
	}
	
	if($size >= 1048576) {
		return round($size/(1048576), $nachkommastellen)." MB";
	}
	
	if($size >= 1024) {
		return round($size/(1024), $nachkommastellen)." KB";
	}
	
	return $size." Byte";
}

?>

	<?php
		
		// Dateien auslesen und anzeigen
		
		$i=0;

		$pfad="dateien/progs/";
		$verz=opendir ($pfad);
	?>
		<table>
		 <tr>
		  <td width="400">Dateiname</td><td>Dateigr&ouml;&szlig;e</td>
		 </tr>
		</table><hr />
		<table>
	<?php
		while ($file=readdir($verz))
		{
			if (filetype($pfad.$file)!="dir")
			{
				$i++; ?>
				
				<tr>
				 <td width="400"><?php echo "<a href='" . $pfad.$file . "' target='_blank'>" . $file . "</a>"; ?></td>
				 <td><?php echo fs_convert($pfad.$file, 2); ?></td>
				</tr>
				
				<?php
			}
		}
		echo "</table>";
		closedir($verz);
		
		echo "<hr>Es sind $i Dateien verfügbar.";

	
	?>


Das hat bis jetzt wunderbar funktioniert. allerdings habe ich jetzt mal eine datei von 2,7 GB größe hochgeladen, welche auch wirklich auf dem server liegt, doch bei der er bei der dateigröße nur "Byte" wiedergibt, also keine der bedingungen im obigen sctiptteil trifft zu und $size kann nicht bestimmt werden. wenn ich die größe der 2,7 GB datei bestimme, also sagen wir mal
echo filesize($file);
echo filetype($file);

dann wird nichts ausgegeben, weder eine größe noch ein dateityp. bei allen anderen dateien auf dem server erscheint als dateityp dann "file" und die größe halt in bytes.
ich schlussfolgere mal ganz klug, dass es wohl an der dateigröße liegt.

zusätzlich erscheinen alle aufgelisteten dateien ja auch gleich als link zum downloaden, auch da klappt es nicht. der link-verknüpfung, also die URL, ist im prinzip richtig, aber beim download erscheint:

Zitat

"dateiname" von www.blablabla.com kann nicht heruntergeladen werden.
Die Internetseite konnte nicht geöffnet werden. Sie ist entweder nicht verfügbar oder konnte nicht gefunden werden. Versuchen Sie es später erneut.


na, woran scheitert's? ich hoffe, dass ich mir das nicht aus dem kopf schlagen muss so große dateien per http anzubieten.

danke schon mal!!
0

Anzeige



#2 Mitglied ist offline   MNG 

  • Gruppe: aktive Mitglieder
  • Beiträge: 293
  • Beigetreten: 29. März 06
  • Reputation: 0

geschrieben 25. Mai 2007 - 20:10

Bei 2.x Gigabyte sprengst du den positiven Integer-Bereich. Lösen lässt sich das in PHP wohl nur über
exec(). Auf einem Linux/Unix-Server z.B. mit
$size = filesize($path);
if (!$size)
{
	$executeMe = "ls -l \"$path\" | cut -d \" \" -f 6";
	$sizeInBytes = exec($executeMe);		
}

Das Ergebnis ist dann aber ein String, keine Zahl.
Warum die Datei nicht ausgeliefert wird, kann ich dir auch nicht genau sagen.
Was für ein Server ist es denn, ist dort eine Download-Schranke definiert? Welches Dateisystem wird verwendet?
0

#3 Mitglied ist offline   felisse.courage 

  • Gruppe: aktive Mitglieder
  • Beiträge: 211
  • Beigetreten: 03. April 05
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Dresden
  • Interessen:grafik-/webdesign

geschrieben 26. Mai 2007 - 17:38

eh ganz von alleine geht es jetzt auf einmal! es zeigt zwar wie gesagt die dateigröße nicht an, aber der download funzt! aber es ging wirklich nicht, aber jetzt schon. hat aus irgendwelchen gründen eine weile gedauert. und nebenbei: mitm IE6 gehts nicht!
wegen dem rest werde ich nach dem we mal schauen. meld mich wieder!
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0