Ik ben aan het proberen om met curl post een file van een server naar een andere te sturen.
Mijn eerste poging was een upload.html te maken en de file naar $message te posten en dan te herposten naar een andere server, niet iets wat veel gebeurd dus.
Ik snap niet echt wat er mis ging, alles bleek erin te zitten:
Een file uploaden via cUrl doe je (tegenwoordig) zo: https://secure.php.net/manual/en/curlfile.construct.php . Je $filename laat je dan direct naar de tmp_name van je upload wijzen (en de MIME type kun je ook overnemen).
$upload = $_FILES['upload']; //'upload' vervangen door de name van je file input
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL, $curlUrl);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, ['file' => new CURLFile($upload['tmp_name'],$upload['type'])]);
curl_exec($ch);
Even een stapje terug: je hebt:
1) upload.html vanwaaruit je (via een browser) een bestand upload naar:
2) een PHP bestand dat alles weer via cUrl doorstuurt naar:
3) een andere server op $ip met uploadtest.php
Mijn code was bedoeld voor stap 2 (de tussenstap: ontvangen en weer doorsturen). Wat jij nou hierboven hebt staan doet me meer denken aan het begin van de keten (stap 1), maar dan niet vanuit een browsers, maar (ook) vanuit PHP.
Kun je de complete code die je nu voor elke stap hebt even in aparte blokken hier neer zetten? Dan kunnen we het complete plaatje zien.
Dat had ik moeten onderzoeken, ik dacht nog waarom hij er niet bij was in jou voorbeeld.
Nee deze code is puur voor te testen en een zeer klein stuk van een groter geheel vandaar de rommel.