Andreas Dölling: Wieder Problem mit Bild-Upload über Proxy

Beitrag lesen

Hallo,

ich hatte letztens schon einmal über Probleme mit einem Datei-Upload geschrieben, den ich über einen Proxy laufen lasse (Stichworte: Socket und HTTP-Request).
Durch den Hinweis aus dem Forum klappt das auch sehr gut.
Die hochgeladene Datei an sich wird über den Proxy auf den Zielrechner übertragen. Leider aber wird die Datei nicht mehr als JPG-Datei erkannt - sprich: es handelt sich nur noch um binären Datenmüll.

Ich komme nun einfach nicht weiter, nachdem ich schon vieles versucht habe, und erhoffe mir mal wieder Hilfe von Euch.

Hier der relevante Auszug aus meiner Klasse "ProxyRequest.php":

while(list($key,$val) = each($_GET)) {
   $get_string .= ($get_string == '')? '?' : '&';
   $get_string .= urlencode($key).'='.urlencode($val);
  }

$post_string = "--".$boundary."\r\n";
  while(list($key, $val) = each($_POST)){
   $post_string .= "Content-Disposition: form-data; name="".$key.""\r\n";
   $post_string .= "Content-Type: application/x-www-form-urlencoded\r\n\r\n";
   $post_string .= urlencode($val);
   $post_string .= "\r\n--".$boundary."";
   $post_string .= "\r\n";
  }

$data = '';
  while(list($key, $file) = each($_FILES)){
   if(!($file["size"] > 0)) {
    return $this->error_head.'<p>Die Datei '.$file['name'].' ist kann nicht gelesen werden.</p>'.$this->error_foot;
   }
   $content_file = join("", file($file["tmp_name"]));
   $data .= "Content-Disposition: form-data; name="".$key.""; filename="".$file["name"].""\r\n";
   $data .= "Content-Transfer-Encoding: base64\r\n";
   $data .= "Content-Type: ".$file["type"]."\r\n\r\n";
   $data .= chunk_split(base64_encode($content_file));
   $data .= "\r\n--".$boundary."";
  }
  $data.="--\r\n\r\n";

$msg  = "POST ".$this->remote_file_url.$get_string." HTTP/1.0\r\n";
  $msg .= "Host: ".$this->proxy_name."\r\n";
  $msg .= "Referer: ".$this->local_url."\r\n";
  $msg .= "User-Agent: Mozilla/4.05C-SGI [en] (X11; I; IRIX 6.5 IP22)\r\n";
     $msg .= "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */*\r\n";
     $msg .= "Accept-Charset: iso-8859-1,*,utf-8\r\n";
    $msg .= "Proxy-Authorization: Basic " . base64_encode ($this->proxy_user . ':' . $this->proxy_pass) . "\r\n";
  $msg .= "Content-Type: multipart/form-data; boundary=".$boundary."\r\n";
  $msg .= "Content-Length: ".strlen($post_string.$data)."\r\n";
  $msg .= "Connection: close\r\n\r\n";

Freue mich über jeden Hinweis!
Danke!

Ciao,
Andreas

--
"Das Corporate Design für das Internet sieht eine Reihe von Grafikelementen vor, die die Optik der Webseite visuell und funktionell beeinflussen." - (Zitat aus dem "Styleguide Corporate Design"  eines großen Konzerns...)