cURL und Dateiupload

Ich habe jetzt alles mögliche an Quellen (z.B.) durchlesen...trotzdem klappt bei mir der Dateiupload mit curl nicht. :/

Sobald ich eine Datei mittels "@" im array angebe, scheint curl gar nicht erst anzurollen...auf jeden Fall ruft er die gewünschte Seite nicht mehr auf.

Ich habe den Webserver auf einem Windows laufen...sollte es daran liegen?

PHP:
$url = 'http://hiersollshin.web/'.$_SESSION[kategorie][shop_rub].'/neu';
 
// Array mit den Feldern des Formulars und den zu sendenden Werten
$form = array(
    'Kategorie'=>$name,
    'bild'=>'@../pix_Materialien/neu_kat_1.jpg' //hier hakt es..lass ich das weg, sendet er
//auch mit einem absoluten Pfad vom Server funktioniert es nicht. :(
);

if(isset($marke))
    $form['Marke'] = 'Marke';
if(isset($baujahr))
    $form['Baujahr'] = 'Baujahr';
 
$curl = curl_init($url);
 

curl_setopt($curl, CURLOPT_POST, 1);

curl_setopt($curl, CURLOPT_POSTFIELDS, $form);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

$_SESSION[xxx][response] = curl_exec($curl);

curl_close($curl);
 
Zuletzt bearbeitet:
Sobald ich eine Datei mittels "@" im array angebe, scheint curl gar nicht erst anzurollen...auf jeden Fall ruft er die gewünschte Seite nicht mehr auf.

Code:
[...]
$_SESSION[xxx][response] = curl_exec($curl);
print 'Curl-Fehler: ' . curl_error($curl);
print $_SESSION[xxx][response];
[...]
Villeicht siehst du dann schon was los ist.

HTH

Micha
 
Soooo...ich habs! :)

Danke @mime, an curl_error hab ich gar nicht gedacht. :rolleyes:
Diese Funktion gab mir ein "curl failed creating formpost data" zurück.

PHP scheint wohl Probleme damit zu haben, wenn der Key im Array in einfachen Anführungszeichen steht. Dadurch hat er dummerweise die Datei nicht finden können.


PHP:
$url = 'http://hiersollshin.web/'.$_SESSION[kategorie][shop_rub].'/neu';
 
// Array mit den Feldern des Formulars und den zu sendenden Werten
$form = array(
    'Kategorie'=>$name
    ,'bild'=>"@".$bild //mit absolutem Pfad
);

if(isset($marke))
    $form['Marke'] = 'Marke';
if(isset($baujahr))
    $form['Baujahr'] = 'Baujahr';
 
$curl = curl_init($url);
 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $form);

$_SESSION[xxx][response] = curl_exec($curl);
curl_close($curl);

Leider übergibt er die Datei jedoch nur als ocstream. Da ich jedoch weiß, dass ich nur Bilder übertrage, löse ich das in dem durch curl angesprochenen, server-seitigen Script folgendermaßen:

PHP:
if(isset($_FILES[bild]))
{
	$image_data = getimagesize($_FILES[bild][tmp_name]); 
	$_FILES[bild][type] = $image_data['mime'];	
}
 
Zuletzt bearbeitet:
Zurück
Oben