margre
Goto Top

CURL Datei Upload (http)

Hallo Zusammen,

ich möchte gerne einen Dateiupload von meinem Server zu einem "fremden" Server per CURL zu stande bringen.
um es vorweg zunehmen der Betreiber ist von diesem vorhaben informiert !

Auf dem Fremdserver gibt es ein Webformular für diesen Upload, dessen Quellcode sie so aus:

        <form name="SPic" enctype="multipart/form-data" method="post" action="/SPic.asp?Handler=SPic">  
            <input type="hidden" name="id_pic" value="934512481452"/>  
             <input type="file" name="FILE_N"/>  
             <input type="submit">  
Ich muss noch dazu sagen das dieses Bild einem Datensatz zugeordnet werden muss deshalb muss das HIDDEN feld auch mit übertragen werden.

Habt dir eine Idee wie man dieses verwirklichen kann ?

Ich habe die letzten Tage mit CURL herumgebastelt aber mir diverse Beispiele aus dem Netz gezogen,
und ich habe mich auch mit der php.net Seite herumgeschlagen ich komme aber nicht weiter.

Mit freundlichen Grüßen


MarGre

Content-ID: 112856

Url: https://administrator.de/contentid/112856

Ausgedruckt am: 25.11.2024 um 16:11 Uhr

godlie
godlie 31.03.2009 um 16:17:39 Uhr
Goto Top
Eigentlich sollte es so funktionieren:

   $uploadfile="/foo/test.jpg";  
   $ch = curl_init("www.foo.bar/upload.php");  
   curl_setopt($ch, CURLOPT_POSTFIELDS,
               array('file'=>"@$uploadfile",  
                     'submit'=>'Upload'  
                        ));
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
   $postResult = curl_exec($ch);
   curl_close($ch);
   print "$postResult";  
?>

grüße
MarGre
MarGre 31.03.2009 um 17:16:03 Uhr
Goto Top
Das bekomme ich als fehlermeldung


failed creating formpost data
godlie
godlie 01.04.2009 um 07:21:32 Uhr
Goto Top
Hast du deine benötigten Felder eingetragen? ich glaube nicht es sieht eher danach aus als hättest du einfach das was hier war reinkopiert und ausgeführt.

du musst hier drinne:
curl_setopt($ch, CURLOPT_POSTFIELDS,
               array('file'=>"@$uploadfile",  
                     'submit'=>'Upload'  
                        ));
alle felder die in der Form auf dem Fremdserver sind anführen mit deren variablen.
weiters ist die curl_init() Zeile mit dem Ziel ( also action="" ) von der Form auszufüllen.

ein wenig mitdenken wäre nicht fehlerhaft. ansonsten mal php.net/curl konsultieren.
MarGre
MarGre 02.04.2009 um 00:03:19 Uhr
Goto Top
Hallo

Ich habe jetzt noch etwas vergessen da es alles ein cookie geregelt hat

den Login habe ich mit dem HTTP LIVE HEADER abgefangen:

POST /controller.asp?handler=DoLogin country=&language=3&DealerId=XXXX&Password=XXXXX
godlie
godlie 02.04.2009 um 01:07:32 Uhr
Goto Top
Hm naja da wird ich nicht viel übrig bleiben als das http protkoll zu studieren ( was ich nciht für dich machen werde ;) ) umd die sache mit dem cookie und dem post submit zusammen zu bekommen.