Localhorst: Bild runterladen und ausgeben (fsockopen)

Beitrag lesen

Könntest du noch die fertige Funktion posten, damit auch Archivsucher etwas davon haben?

Na aber sicher doch!!!

Und noch mals vielen Dank für Hilfe, da wäre ich alleine nie drauf gekommen!

Folgende Funktion lädt eine binäre Datei aus einem mit .htaccess geschützen Ordner und speichert die binäre Datei (Bild) in einem Ordner auf dem localen System.

###############################################################################################################
function get_secret_image($host,$path,$user,$password,$speicher_bild_pfad,$speicher_bild_name) {
###############################################################################################################

$fp = fsockopen($host, 80);
  fputs($fp, "GET ".$path." HTTP/1.0\n");
  fputs($fp, "Host: ".$host."\n");
  fputs($fp, "Authorization: Basic ".base64_encode($user.":".$password)."\n");
  fputs($fp, "Connection: close\n\n");

$content = "";
  while(!feof($fp)) {
      $content .= fgets($fp, 1024);
  }

fclose($fp);
  $bild = substr($content, strpos($content, "\r\n\r\n")+4);
  $handle = fopen ($speicher_bild_pfad.$speicher_bild_name, "wb");
  fwrite($handle, $bild);
  fclose ($handle);
}

Für normale nicht binäre Dateien benutze ich folgende Funktion.

###############################################################################################################
###############################################################################################################
function get_secret_file ($host, $path, $user, $password) {
###############################################################################################################
###############################################################################################################
  $fp = fsockopen($host, 80);
  fputs($fp, "GET ".$path." HTTP/1.1\n");
  fputs($fp, "Host: ".$host."\n");
  fputs($fp, "Authorization: Basic ".base64_encode($user.":".$password)."\n");
  fputs($fp, "Connection: close\n\n");

$content = "";
  while(!feof($fp)) {
      $content .= fgets($fp, 1024);
  }

fclose($fp);

return $content;
}