kevkev
Erfahrenes Mitglied
Hallo,
Ich will eine Datei über POST an ein anderes PHP-Script übertragen.
Soweit sogut, nur das Problem ist das folgende:
Der Mime-Typ wird nicht übertragenm, d.h. die Datei selber kommt an, aber der Mime-Typ wird nicht richtig übertragen, denn die $_FILES ausgabe zeigt folgendes an:
Hier fehlt nämlich type.
Woran kann das denn liegen? Ich habe den 'Content-Type' doch angegeben
Viell. könnt Ihr mir helfen !
Gruß Kevin
Ich will eine Datei über POST an ein anderes PHP-Script übertragen.
PHP:
<?php
function PostToHost($host, $port, $path, $referer, $data_to_send)
{
$dc = 0;
$bo="-----------------------------305242850528394";
$fp = fsockopen($host, $port, $errno, $errstr);
if (!$fp) {
echo "errno: $errno \n";
echo "errstr: $errstr\n";
return $result;
}
fputs($fp, "POST $path HTTP/1.0\n");
fputs($fp, "Host: $host\n");
fputs($fp, "Referer: $referer\n");
fputs($fp, "User-Agent: Mozilla/4.05C-SGI [en] (X11; I; IRIX 6.5 IP22)\n");
fputs($fp, "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */*\n");
fputs($fp, "Accept-Charset: iso-8859-1,*,utf-8\n");
fputs($fp, "Content-type: multipart/form-data; boundary=$bo\n");
foreach($data_to_send as $key=>$val) {
$ds =sprintf("--%s\nContent-Disposition: form-data; name=\"%s\"\n\n%s\n", $bo, $key, $val);
$dc += strlen($ds);
$return .= $ds;
}
$dc += strlen($bo)+3;
fputs($fp, "Content-length: $dc \n");
fputs($fp, "\n");
foreach($data_to_send as $key=>$val) {
$ds =sprintf("--%s\nContent-Disposition: form-data; name=\"%s\"\n\n%s\n", $bo, $key, $val);
fputs($fp, $ds );
$return .= $ds;
}
$ds = "--".$bo."--\n";
fputs($fp, $ds);
while(!feof($fp)) {
$res .= fread($fp, 1);
}
fclose($fp);
return $res;
}
$filename = "homer.jpg";
$handle = fopen ($filename, "r");
$contents = fread ($handle, filesize ($filename));
fclose ($handle);
$xf="Content-Type: image/jpeg\n\n".$contents;
$data["userfile\"; filename=\"homer.jpg"] = $xf;
$x = PostToHost (
"kevin",
80,
"/test/test.php",
"http://www.google.com",
$data
);
echo "<pre>";
echo $x;
echo "</pre>";
?>
Soweit sogut, nur das Problem ist das folgende:
Der Mime-Typ wird nicht übertragenm, d.h. die Datei selber kommt an, aber der Mime-Typ wird nicht richtig übertragen, denn die $_FILES ausgabe zeigt folgendes an:
Code:
Array
(
[datei] => Array
(
[name] => impressum.php
[type] =>
[tmp_name] => C:\Programme\xampp\tmp\php73.tmp
[error] => 0
[size] => 538
)
)
Hier fehlt nämlich type.
Woran kann das denn liegen? Ich habe den 'Content-Type' doch angegeben
Viell. könnt Ihr mir helfen !
Gruß Kevin