text: Download direkt weiterleiten
  antworten beispiel benutzer besten erledigen betreffende datei byte code datei datum dialog externen server header http megabyte richtigen mime server type warten weiterleiten weiterleitung
  13:31, 29.1.2010
  Hallo PHP-Freunde,
  Ich habe eine Frage bezüglich PHP. Und zwar möchte ich ein Script schreiben, das von einem externen Server eine Datei herunterlädt und diese, ohne sie nochmal auf dem Server zwischenzuspeichern, direkt an den Benutzer weiterleitet.
  Die betreffende Datei ist unter http://example.org/datei.zip/ zu finden.
  Das Script liegt z.B. auf http://lima-city.de/
  Der Benutzer hat die IP 12.34.56.78
  Nun soll das Script die Datei direkt an den Benutzer weiterleiten; im Browser des Benutzers soll sich also der ganz gewöhnliche Download-Dialog öffnen.
  Ist das ohne weiteres mit PHP möglich, oder braucht man hierfür eine Scriptsprache wie Perl?
  14:01, 29.1.2010
  <a href="http://example.org/datei.zip">Download</a>
  Meinst du möglicherweise so etwas?
  Warum solltest du sie auch auf dem eigenen Server zwischenspeichern wollen? Mit PHP wäre das, meines Wissens nach, nicht möglich. Einfach direkt auf die Datei verlinken (mit einem normalen Link, wie oben gezeigt) oder eine automatische Meta-, bzw. JS-weiterleitung einbauen.
  styVe (qap2-Team)
  14:27, 29.1.2010
  echo file_get_contents(...)
  wird das wahrscheinlich am besten erledigen. Dennoch wird der File auf dem Server zwischengespeichert, darum wirst du in keinem Fall herumkommen.
  0:01, 30.1.2010
  @qap2:
  Ich möchte ja, dass der Benutzer den Link nicht direkt zu sehen bekommt.
  Wäre es nicht, z.B. mit Perl möglich, dass das Script die Datei beim Herunterladen von http://example.org/ bereits an den Benutzer weiterleitet?
  Die Datei http://example.org/datei.zip/ hat eine Größe von 100 Megabyte
  Das Script lädt diese Datei nun runter und wenn 1 Megabyte auf dem Server gespeichert ist, wird dieser eine Byte direkt an den Benutzer weitergeleitet.
  Ich möchte also verhindern, dass der Benutzer bei größeren Dateien erst warten muss, bis diese auf dem Server zwischengespeichert wurden, sondern der Server diese direkt an den Benutzer weiter "streamt". Ist das möglich?
  11:13, 30.1.2010
  @mermadalis: Ja, genau das sollte mein recht einfacher Code machen (setzte bitte vorher über header() den richtigen MIME-Type), wenn du kein Outputbuffering aktiviert hast. (Hast du meistens nicht.) PHP wartet nicht bis zum Ende des Script um etwas aus zu geben.
  14:49, 3.4.2010
  Ich war längere Zeit nicht da und bin erst heute dazu gekommen zu antworten.
  Leider funktioniert es nicht, wenn ich mit file_get_contents eine größere Datei anfordere, dauert es immer sehr lange, bis der Download gestartet werden kann.
  Offenbar wartet PHP doch mit der Weiterleitung, bis alle Daten auf der Festplatte sind.
  Du schreibst etwas von einem Outputbuffer. Wie genau kann man den denn deaktivieren, für den Fall, dass er aktiviert ist?
  14:57, 3.4.2010
  Der Outputbuffer ist immer aus, sofern du ihn nicht via einer Funktion aktiver hast. Der brauchst du auch nicht.
  Ja, der Download kann erst gestartet werden, wenn alle Dateien beim Server sind. Darum wirst du nicht drum herum kommen.