# Dateigröße einer Datei auf einem HTTP-/Web-Server.



## Novanic (23. Sep 2006)

Hi Leute,

weiß jemand wie man die Dateigröße einer Datei abfragen kann die auf einem HTTP-/Web-Server liegt?
Z.B. habe ich die URL "http://www.google.de/index.html" und möchte die Größe der Datei "index.html" wissen.

Hat jemand eine Idee wie man das lösen kann? Am Besten ohne die Datei komplett runterladen zu müssen. ;-)


Danke schonmal im Voraus! 

Gruß Nova


----------



## AlArenal (23. Sep 2006)

Kannst du knicken. Das gibt das HTTP-Protokoll nicht her.


----------



## Novanic (23. Sep 2006)

Hmmm und wie machen das dann Webbrowser? ;-)

Mein Webbrowser sagt mir doch auch wieviel Prozent ich von der Datei heruntergeladen hab. 

Gruß Nova


----------



## AlArenal (23. Sep 2006)

Der Browser schickt ein "GET bla.zip" und bekommt als Response im Content die Datei und im Header Informationen über Dateityp, Encoding und Länge des Content in Bytes.
Bevor der Download beginnt weiß dein Browser aber auch nicht, was da auf ihn zukommt.


----------



## Novanic (23. Sep 2006)

Hm, das ist dann ja blöd.

Und die Datei anzufordern und dann den Download "abzubrechen" wäre wohl auch nicht die sauberste Lösung. 

Als nächstes würde ich dann eine Dateiliste benötigen von einem Ordner (URL) benötigen, aber das kann ich mir wohl auch abschminken. ;-)
Also alle Dateinamen die z.B. in dem Ordner liegen: "http://www.eineAdresse/content".

Aber das bietet das HTTP-Protokoll wohl auch nicht oder? 

Danke schonmal für deine Hilfe! 

Gruß Nova


----------



## mlux (23. Sep 2006)

Novanic hat gesagt.:
			
		

> Aber das bietet das HTTP-Protokoll wohl auch nicht oder?



So siehts aus. Ob du den Inhalt eines Ordners auflisten darfst oder nicht, hängt von der Webserver-Konfiguration ab. Und selbst wenn, dann wird dir dieser Ordner auch nur über eine entsprechende Auflistung in HTML-Form vom Server zurückgesendet. Diese könnte man zwar parsen aber ob das sinnvoll ist, musst du wissen


----------



## Novanic (23. Sep 2006)

Oh man und ich dachte schon das FTP-Protokoll ist unangenehm... ;-)


----------



## Roar (24. Sep 2006)

doch, dat http protokoll gibt dat her. du musst ein HEAD senden, dann liefert dir der server die header, aber nicht den dateiinhalt:
> HEAD /de/viewtopic.php?download=-1&t=37018 HTTP/1.0
< Content-Length: 2551


----------



## Novanic (24. Sep 2006)

Ja, genau das hab ich auch gerade herausgefunden.  Ich hatte das jetzt mal mit "Apache Commons HTTPClient" probiert. Da gibt es eine Methode zum Abfragen des Headers und Content-length ist die Dateigröße der Datei.

Danke! 

Jetzt bleibt noch das Problem dass ich eine Dateiliste des Ordners benötige (nur die Dateinamen würden reichen). Dazu konnte ich noch keine Lösung finden.
Am schönsten wäre es natürlich wenn es wieder etwas global funktionierendes wie den Header geben würde, es wäre aber auch möglich dass die Lösung z.B. nur für Apache Webserver funktioniert.

Fällt euch dazu auch eine Lösung ein? 

Danke schonmal.

Gruß Nova


----------



## Roar (24. Sep 2006)

wenn du selbst zugriff auf den server hast kansnt du entweder:
- ein php script schreiben, was dir den ordnerinhalt zurückliefert und das benutzen
- in der .htaccess datei diese directory listings aktivieren, soweit ich weiß kannst du sogar nen eignes template für diese listings erstellen, was dann einfcher zu parsen sein sollte.
- WebDAV sollte das auch können, kenn mich damit aber nich aus
-FTP


----------

