Hi Leute,
bitte übt Nachsicht, ich habe schon das Forum soweit durchforstet
aber leider nix passendes gefunden.
Folgendes Problem hab ich.
Ich will einen Fileupload von einen Webserver zu einen anderen machen.
Soweit so gut ist mein Script folgendes:
Das Script PostToHost werden sicher einige kennen
Gut soweit wird das File scheinbar an die Datei kd_distribution7.php geliefert.
Denn mit print_r($HTTP_POST_FILES); bekomme ich folgendes Resultat:
Array ( [import_file] =>
Array (
[name] => d7toAutoscout_add.gz
[type] =>
[tmp_name] => /tmp/phpPyLDtv
[error] => 0
[size] => 1781
)
)
Jetzt denke ich positiv und mache so weiter wie ich es machen würde,
wenn das File über ein Formular übermittelt worden wäre.
Das würde bei Übermittlung mittels Formular auch funktionieren
und ich hätte mein GZ-File in dem Ordner in dem ich es haben will.
Der Schmäh:
Auch über das oben genannte Script wird das GZ-File in den vorgesehenen Ordner kopiert.
Nur ist es leider Fehlerhaft und kann nicht geöffnet werden.
So nun meine Frage: Wo bitte liegt da der Hund begraben???
Ich denke doch, dass ich das File zwar hochgeladen habe
und anschließend wie sonst auch weiterverarbeiten muss, oder?
Also eben mit dem copy Befehl,
die Datei aus dem /tmp in das Verzeichnis kopieren wo ich es hinhaben will.
Bitte helft mir!
Herzlichen Dank
lg.
Werner
bitte übt Nachsicht, ich habe schon das Forum soweit durchforstet
aber leider nix passendes gefunden.
Folgendes Problem hab ich.
Ich will einen Fileupload von einen Webserver zu einen anderen machen.
Soweit so gut ist mein Script folgendes:
PHP-Code:
<?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.5IP22)\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);
}
$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 );
}
$ds = "--".$bo."--\n";
fputs($fp, $ds);
while(!feof($fp)) {
$res .= fread($fp, 1);
}
fclose($fp);
return $res;
}
$fa =@file("/home/abel2/www/d7toAutoscout_add.gz");
$xf="Content-Type: application/x-zip-compressed\n\n". implode("", $fa);
$data["import_file\"; filename=\"d7toAutoscout_add.gz"] = $xf; // Dateiname des Zip-Archivs
$x = PostToHost("www.meinedomain.at",
80,"/bidgo/api/kd_distribution7.php",
"www.meinedomain.at/bidgo/api/kd_distribution7.php",$data);
print $x;
echo "<hr />";
if (strpos($x, "HTTP/1.1 200 OK") !== false) {
print "Ihre Daten wurden zum Import angenommen.";
$MAILTEXT .= "\nDaten wurden zum Import angenommen\n";
} else{
print "Fehler beim Import:<hr />".$x;
$MAILTEXT .= "\nFehler beim Import:\n".$x;
}
?>
Gut soweit wird das File scheinbar an die Datei kd_distribution7.php geliefert.
Denn mit print_r($HTTP_POST_FILES); bekomme ich folgendes Resultat:
Array ( [import_file] =>
Array (
[name] => d7toAutoscout_add.gz
[type] =>
[tmp_name] => /tmp/phpPyLDtv
[error] => 0
[size] => 1781
)
)
Jetzt denke ich positiv und mache so weiter wie ich es machen würde,
wenn das File über ein Formular übermittelt worden wäre.
PHP-Code:
$Pfad=$TMP_path.$HTTP_POST_FILES['import_file']['name'];
if (!copy($HTTP_POST_FILES['import_file']['tmp_name'], $Pfad))
{
echo "Fehler beim Kopieren!";
}
und ich hätte mein GZ-File in dem Ordner in dem ich es haben will.
Der Schmäh:
Auch über das oben genannte Script wird das GZ-File in den vorgesehenen Ordner kopiert.
Nur ist es leider Fehlerhaft und kann nicht geöffnet werden.
So nun meine Frage: Wo bitte liegt da der Hund begraben???
Ich denke doch, dass ich das File zwar hochgeladen habe
und anschließend wie sonst auch weiterverarbeiten muss, oder?
Also eben mit dem copy Befehl,
die Datei aus dem /tmp in das Verzeichnis kopieren wo ich es hinhaben will.
Bitte helft mir!
Herzlichen Dank
lg.
Werner
Kommentar