Easy Coding
  Forum Wiki Tagging Projekte Karte RSS
» Start
» All Recent Changes
» Wiki Suche
» Wiki Hilfe

Coder How To's

Algorithmen Informationen

edit SideBar

Neue Wiki Eintrage finden Sie unter easy-coding.de/wiki.

Dateien an Upload Script schicken

Wenn ihr von eurem Webserver eine Datei an ein Upload Script schicken wollt, bietet euch PHP keine Standardfunktionen.
Eine Funktion dazu reiche ich euch hiermit nach.

Das passende Formular auf Empfängerseite würde grob gesehen folgendermaßen aussehen:

post-empfaenger.php
  1.         <input type="text" name="var1" />
  2.         <input type="text" name="var2" />
  3.         <input type="file" name="inputname" />
  4.         <input type="submit" />
  5. </form>

Hier nun das Script auf Senderseite:

post-fsockopen.php
  1. <?php
  2. function PostToHost($host, $port, $path, $postdata, $filedata) {
  3.      $data = "";
  4.      $boundary = "---------------------".substr(md5(rand(0,32000)),0,10);
  5.      $fp = fsockopen($host, $port);
  6.  
  7.      fputs($fp, "POST $path HTTP/1.0\n");
  8.      fputs($fp, "Host: $host\n");
  9.      fputs($fp, "Content-type: multipart/form-data; boundary=".$boundary."\n");
  10.  
  11.      // Ab dieser Stelle sammeln wir erstmal alle Daten in einem String
  12.      // Sammeln der POST Daten
  13.      foreach($postdata as $key => $val){
  14.          $data .= "--$boundary\n";
  15.          $data .= "Content-Disposition: form-data; name=\"".$key."\"\n\n".$val."\n";
  16.      }
  17.      $data .= "--$boundary\n";
  18.  
  19.      // Sammeln der FILE Daten
  20.      $data .= "Content-Disposition: form-data; name=\"{$filedata[0]}\"; filename=\"{$filedata[1]}\"\n";
  21.      $data .= "Content-Type: image/jpeg\n";
  22.      $data .= "Content-Transfer-Encoding: binary\n\n";
  23.      $data .= $filedata[2]."\n";
  24.      $data .= "--$boundary--\n";
  25.  
  26.      // Senden aller Informationen
  27.      fputs($fp, "Content-length: ".strlen($data)."\n\n");
  28.      fputs($fp, $data);
  29.  
  30.      // Auslesen der Antwort
  31.      while(!feof($fp)) {
  32.          $res .= fread($fp, 1);
  33.      }
  34.      fclose($fp);
  35.  
  36.      return $res;
  37. }
  38.  
  39. $postdata = array('var1'=>'test', 'var2'=>'test');
  40. $data = file_get_contents('Signatur.jpg');
  41. $filedata = array('inputname', 'filename.jpg', $data);
  42.  
  43. echo PostToHost ("localhost", 80, "/test3.php", $postdata, $filedata);
  44. ?>
Zuletzt geändert am 06.01.2008 17:57 Uhr
  Impressum