HTTP-protocol aus php

hi,

ich wollte per php einen dateidownload auf den server machen.. nur leider kenn ich das http protokoll nicht so gut.

Ich hab mal spaßhalber versucht mit nem Telnetclient auf ein file zuzugreifen, aber irgendwas mach ich falsch.. kann mir jemand helfen?

GET /index.html HTTP/1.1 (LF) (LF)

(LF natürlich nich geschrieben sondern enter gedrückt *g*)

Leider kommt dann nur immer ne ausgabe: "Your browser sent a request this server could not understand."

Was brauch ich noch?
 
du könntest theoretischfolgendes machen:

Code:
<?php
print("<a href='datei-pfad'>download</a>");
?>


wobei der datei-pfad zb http://www.hackerboard.de/index.php wäre

als Ausgabe ständ dort einfach nur:

Download

beim klick darauf, wird dann der download gestartet


mfg
Sven
 
Ich willl ja aufn server downloaden.. also ne art fxp für http *lol*

User gibt im formular ne url an..

und der server schickt dann ne anfrage an einen dritten. wobei die zu downloadende datei auf dem server landet, den der user grade bedient..
 
hmm.. readfile.. das könnte natürlich auch klappen... dann muss ich net mit Protokoll rumchonglieren..

Ich versuchs mal..

Aber wen nnoch jemnd weis wie der richtige befehl für doie telnetsession gelautet hätte würde mich das auchnoch interessieren

danke erstmal
 
also mit fread funktioniert das irgendwie nicht.. da ich die filesize der fremden datei nicht bekomme.. (scheinbar)

PHP:
echo 'prozess anfang';
 $handle = fopen ($_GET['file'], "r");
 $content = fread($handle, filesize($_GET['file']));
 fclose($handle);
 echo '....';
 $handle = fopen (files/$_GET['target'], "w");
 fwrite($handle, $content);
 fclose($handle);
 
 echo'prozess ende';
 ?>

[edit]
Ich hab es jetzt so hinbekommen.

PHP:
<?
 $content = '';    // content deklariert
                           // header abfragen
 $fp = @fsockopen("host", "80", &$errno, &$errstr, 10); //open connection
 if(!$fp) {
 $success=false;
 echo 'no connection'; //set if no connection
 }
 else {
 $success=true;
 }
 if($success == true){ //if connection
 fputs($fp,"HEAD file HTTP/1.0\r\nUser-Agent: Mozilla\r\n\r\n");
 while(!feof($fp)) {
 $header .= fgets($fp, 1000);
 }}
 fclose($fp); //close connection
 //------------------------------------------------------------------------------
                                        // file abfrgaen
  $fp = @fsockopen("host", "80", &$errno, &$errstr, 10); //open connection
 if(!$fp) {
 $success=false;
 echo 'no connection'; //set if no connection
 }
 else {
 $success=true;
 }
 if($success == true){ //if connection
 fputs($fp,"GET file HTTP/1.0\r\nUser-Agent: Mozilla\r\n\r\n");
 while(!feof($fp)) {
 $content .= fgets($fp, 1000);
 }
 fclose($fp); //close connection
 //-----------------------------------------------------------------------------
 
 $content = substr($content, strlen($header));  /header löschen

 $handle = fopen("files/lantis.jpg","w");
 fwrite($handle, $content);
 fclose($handle);
 }
 ?>


[/edit]
 
Zurück
Oben