1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
<?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>';
|