php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2007

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 17.11.2005, 10:28  
Erfahrener Benutzer
 
Registriert seit: 02.03.2005
Beiträge: 305
DerDesian
Standard Datei-Informationen über HTTP

Hi,

hab ein Projek, dass auf mehrere Server verteilt ist.
Die Bilder, downloadLinks, CSS und JS liegen Zentral auf einem Server.
(Is der Stand, kann ich nich ändern.)

Bei den downloadLinks wird immer der Absolute Pfad händisch in ein Interface eingegeben.
Um zu schauen ob der jenige meim Speichern auch alles richtig macht, sollte man jetzt das File überprüfen.
Leider funktionieren file_exist() und filesize() nicht über http.

Hat jemand ne Idee, wie ich die Größe der Datei rausbekomme?

Besten Dank!

Gruß
Der Desian
__________________
Wenn dich was ankotzt, machs besser.
DerDesian ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 17.11.2005, 11:04  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Du musst die Datei eben einlesen.
Zergling-new ist offline  
Alt 17.11.2005, 11:44  
Erfahrener Benutzer
 
Registriert seit: 02.03.2005
Beiträge: 305
DerDesian
Standard

Ich denke, bei zB >2MB .PDFs ist das keine so gute Idee, wenn das Script erstmal per HTTP von nem andern Server die Datei läd um festzustellen welche Größe sie hat.
Da verdonner ich die Armen Mods lieber zum 'Nachschauen und manuell reinschreiben'.

Ne elegantere Lösung wär mir allerdings lieber.

Gruß
Der Desian
__________________
Wenn dich was ankotzt, machs besser.
DerDesian ist offline  
Alt 17.11.2005, 11:49  
Gast
 
Beiträge: n/a
Standard

Eigentlich sollen bei einer HEAD-Anfrage alle Header wie bei einem GET geliefert werden; also auch Content-Length. Bei dynamischen Inhalten kann man das in aller Regel knicken, aber bei statischen INhalten hat man wenigestens Chancen.

Probier mal http://froemter.de/php/phpLinkCheck.phps mit einer kleinen
Änderung aus.
PHP-Code:
while(!feof($fp)) $head .= fgets($fp1024);
fclose($fp); 
die(
'<pre>'.$head.</pre>); 
Steht da dann was von Content-Length?
 
Alt 17.11.2005, 12:27  
Erfahrener Benutzer
 
Registriert seit: 25.04.2005
Beiträge: 1.356
HStev zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Ansonsten halt den Socket selbst öffnen und den Request so schicken dann bekommt man alle Header ... muss man halt nur noch rausfiltern
HStev ist offline  
Alt 17.11.2005, 16:33  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von DerDesian
Ich denke, bei zB >2MB .PDFs ist das keine so gute Idee, wenn das Script erstmal per HTTP von nem andern Server die Datei läd um festzustellen welche Größe sie hat.
 
Alt 17.11.2005, 17:58  
Erfahrener Benutzer
 
Registriert seit: 25.04.2005
Beiträge: 1.356
HStev zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Was soll mir diese Antwort jetzt sagen...?
ich rede von einen Socket auf Port 80 der ein HTTP Request an den Server schickt dieser schickt den HTTP Header zurück und im Anschluss die Datei aber man kann ja mit den entsprechenden Funktionen einfach nur Bytestücke auslesen und dementsprechend nur den HTTP-Header herausfiltern und dann die Verbindung wieder trennen ohne die komplette Datei zu laden...

ps:
Zitat:
Zitat von Bruchpilot
Probier mal http://froemter.de/php/phpLinkCheck.phps mit einer kleinen
Änderung aus.
PHP-Code:
while(!feof($fp)) $head .= fgets($fp1024);
fclose($fp); 
die(
'<pre>'.$head.</pre>); 
Steht da dann was von Content-Length?
mal ganz nebenbei bemerkt der HTTP Header bei ner Antwort auf n Request muss nicht immer 1024 sein ... guck dir einfach nur mal mit Ethereal die Kommunikation zwischen Client u. Server an.
HStev ist offline  
Alt 17.11.2005, 21:01  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von HStev
Was soll mir diese Antwort jetzt sagen...?
Das habe ich mich bei Deiner vorletzten Antwort auch schon gefragt. Und jetzt auch wieder. Ich lese da leider nur viel bla bla.

Zitat:
Zitat von HStev
Ansonsten halt den Socket selbst öffnen und den Request so schicken dann bekommt man alle Header
Ja, eben das macht das Skript doch. Es ist das bei php Faq unter "12. Wie überprüfe ich Hyperlinks auf ihre Gültigkeit? " verlinkte und es wertet die Antworten der HEAD Anfrage aus.
Zitat:
mal ganz nebenbei bemerkt der HTTP Header bei ner Antwort auf n Request muss nicht immer 1024 sein
Und genau deshalb ist da eine while-Schleife, die den Spaß bis feof() wiederholt. Sehr schlau bemerkt.
Zitat:
dementsprechend nur den HTTP-Header herausfiltern und dann die Verbindung wieder trennen ohne die komplette Datei zu laden
Wenn das geht, wird mit einiger Sicherheit auch bei einer HEAD-Anfrage die Länge geliefert. Werden die Daten per Transfer-Encoding:Chunked ausgeliefert (oft bei dynamischen Inhalten), fehlt diese Info; sie ergibt sich anderweitig.
 
Alt 17.11.2005, 21:13  
Erfahrener Benutzer
 
Registriert seit: 25.04.2005
Beiträge: 1.356
HStev zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Zitat:
Zitat von Bruchpilot
Zitat:
Zitat von HStev
Was soll mir diese Antwort jetzt sagen...?
Das habe ich mich bei Deiner vorletzten Antwort auch schon gefragt. Und jetzt auch wieder. Ich lese da leider nur viel bla bla.
Das lese ich bei deinen auch hin und wieder und tortzdem erklärt das nicht eine Antwort auf meinen Post... nirgends steht das ich das ich die Datei komplett überhaupt lade...ich hab von Anfang an von einen Socket gesprochen falls dir das ein Begriff sein sollte.

Aber man versucht ja immer wieder freundlich zu diskutieren und zu helfen...
HStev ist offline  
Alt 17.11.2005, 21:20  
Gast
 
Beiträge: n/a
Standard

Ja, und was verwendet das andere Skript? Kein Socket sondern Magie? Oder ist "Socket" Magie?
Ich habe wirklich ein Problem damit, wenn jemand in einer Diskussion bereits Gesagtes nochmal in schwammiger einwirft. Was bringt das?
Es verschwendet die zeit der anderen - in diesem Fall meine. Sorry, aber das nervt mich.
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Hochgeladene Datei wird doppelt abgelegt thecracked PHP Tipps 2008 3 01.07.2008 16:31
Datei per Buttonklick runterladen... go1denboy PHP Tipps 2008 7 14.06.2008 20:25
Großer Baum -> Große Datei -> Hohe Ladezeit :( PsychoEagle PHP Tipps 2008 7 22.09.2007 12:44
Datei durchsuchen Wöllchen Beitragsarchiv 3 02.03.2006 22:23
[Erledigt] Datei holen über http Server, Hosting und Workstations 8 04.10.2005 10:59
Datei auf FTP-Server ändern ohne lokal abzuspeichern faux PHP-Fortgeschrittene 11 02.09.2005 11:54
Datei mehrmals öffnen und schließen in einem Skript PHP Tipps 2005-2 14 14.07.2005 18:12
Ordner Struktur auslesen bestimmte datei finden .... silverghost PHP Tipps 2005 3 24.05.2005 13:55
Includete Datei nicht gleich ausgeben Madden PHP-Fortgeschrittene 1 12.05.2005 00:19
Datei per http abholen? PHP Tipps 2005 4 01.04.2005 17:41
Dateien lesen und schreiben [mehr als: r,a,w]? PHP Tipps 2004 4 24.10.2004 18:53
Zeilenumbrüche & Neudatein mit PHP PHP Tipps 2004 5 21.10.2004 11:38
Datei mit php erzeugen Stümper PHP Tipps 2004 4 12.10.2004 12:51
php und ftp PHP Tipps 2004 4 07.10.2004 09:58
Wie kann ich eine PHP Datei in eine HTML Datei umwandeln PHP Tipps 2004 2 12.08.2004 18:04


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:44 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.