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-Key: 112856

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

Printed on: April 24, 2024 at 01:04 o'clock

Member: godlie
godlie Mar 31, 2009 at 14:17:39 (UTC)
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
Member: MarGre
MarGre Mar 31, 2009 at 15:16:03 (UTC)
Goto Top
Das bekomme ich als fehlermeldung


failed creating formpost data
Member: godlie
godlie Apr 01, 2009 at 05:21:32 (UTC)
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.
Member: MarGre
MarGre Apr 01, 2009 at 22:03:19 (UTC)
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
Member: godlie
godlie Apr 01, 2009 at 23:07:32 (UTC)
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.