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:
Hier nun das Script auf Senderseite:
Alles anzeigen
Eine Funktion dazu reiche ich euch hiermit nach.
Das passende Formular auf Empfängerseite würde grob gesehen folgendermaßen aussehen:
Hier nun das Script auf Senderseite:
Quellcode
- <?php
- function postToHost($host, $port, $path, $postdata = array(), $filedata = array()) {
- $data = "";
- $boundary = "---------------------".substr(md5(rand(0,32000)),0,10);
- $fp = fsockopen($host, $port);
- fputs($fp, "POST $path HTTP/1.0\n");
- fputs($fp, "Host: $host\n");
- fputs($fp, "Content-type: multipart/form-data; boundary=".$boundary."\n");
- // Ab dieser Stelle sammeln wir erstmal alle Daten in einem String
- // Sammeln der POST Daten
- foreach($postdata as $key => $val){
- $data .= "--$boundary\n";
- $data .= "Content-Disposition: form-data; name=\"".$key."\"\n\n".$val."\n";
- }
- // Sammeln der FILE Daten
- if($filedata) {
- $data .= "--$boundary\n";
- $data .= "Content-Disposition: form-data; name=\"".$filedata['name']."\"; filename=\"".$filedata['name']."\"\n";
- $data .= "Content-Type: ".$filedata['type']."\n";
- $data .= "Content-Transfer-Encoding: binary\n\n";
- $data .= $filedata['data']."\n";
- $data .= "--$boundary--\n";
- }
- // Senden aller Informationen
- fputs($fp, "Content-length: ".strlen($data)."\n\n");
- fputs($fp, $data);
- // Auslesen der Antwort
- while(!feof($fp)) {
- $res .= fread($fp, 1);
- }
- fclose($fp);
- return $res;
- }
- $postdata = array('var1'=>'test', 'var2'=>'test');
- $filedata = array(
- 'name' => 'inputname',
- 'filename' => 'image2.jpg',
- 'type' => 'image/jpeg',
- 'data' => file_get_contents('/home/easycoding/image2.jpg')
- );
- echo '<pre>'.postToHost ("localhost", 80, "/test3.php", $postdata, $filedata).'</pre>';
31.679 mal gelesen