Goedenmiddag,

Ik had een vraag omtrent het uploaden van een foto m.b.v. cURL.

Als ik dit wil doen moet ik toch gewoon het veld naam invoeren met als content: @pathnaarfile?
Moet er verder nog iets gedaan worden? Want dit werkt niet 100%. Hij geeft nu op de externe controle pagina aan dat er geen $_FILES worden meegestuurd. Het enigste wat gebeurd is dat het path van de afbeelding word meegezonden via $_POST.

Ik hoop dat iemand snapt wat ik bedoel, en weet wat ik vergeet want dan kan ik vanavond weer verder. Ik zal vanavond ook wat relevante code erbij zetten want ik ben nu nog op mijn werk en kan dus niet bij de code.

Alvast bedankt, mvg Joost


<?php
$url = 'http://*.nl/cURL/virt_form.php';
$fields = array(
'subscription[firstname]' => urlencode($_POST["subscription"]["firstname"]),
'subscription[lastname]' => urlencode($_POST["subscription"]["lastname"]),
'subscription[datafile]' => urlencode("@".$newfile),
'subscription[agree]' => urlencode($_POST["subscription"]["agree"])
);

foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string, '&');

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, count($fields));
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);

$result = curl_exec($ch);

curl_close($ch);
?>

en dan op virt_form.php:

<?php
if($_SERVER["REQUEST_METHOD"] == "POST") {
print_r($_FILES["subscription"]["name"]);
}
?>
maar daar krijg ik geen output van, andere velden werken wel gewoon, en als ik print_r($_POST) doe, dan staat er: [datafile] => @image-upload/20120904-1346776324.JPG

Maar dit wil ik niet, ik wil de file op kunnen halen via $_FILES en niet via $_POST.
<?php
$_FILES = $_POST;
?>
Dat is voor mij geen oplossing want ik kan niet bij de file waar de data heen verzonden word omdat deze op een andere website staat. Zijn er geen andere oplossingen?
Je verstuurt nu zeker ook alleen maar de bestandsnaam? En niet de afbeelding zelf?

Als ik Google op curl send files krijg ik al snel dit te zien: http://forums.devshed.com/php-development-5/php-curl-send-a-file-533233.html

Daarbij staat:
<?php
curl_setopt($ch, CURLOPT_PUT, true);
curl_setopt($ch, CURLOPT_INFILE, $putData);
curl_setopt($ch, CURLOPT_INFILESIZE, strlen($xml_request));
curl_setopt($ch, CURLOPT_FILE, $result_file);
?>

En dan denk ik... waar heb jij iets met FILE? Nergens.... dat zal wel eens kunnen schelen.



Kortom: even proberen (en daarna weer Googlen en/of hier vragen)

Reageren