Am de trimis un fisier simplu la un API (trebuie in mod binar), din Postman fisierul se trimite, e ok. Insa… nu pare sa functioneze din codul PHP (folosesc Laravel), aveti idee, ce ar fi gresit?
Raw din Postman:
curl --location --request POST 'https://api.ssok.com/ads' \
--header 'Authorization: Basic SFlNRTo5MGoyM2VhJcTdlWHFJOVNDN3ZuQg22==' \
--header 'Content-Type: application/pdf' \
--data-binary '@/Users/Ionut/Downloads/myfile.pdf'
Cod PHP (primesc mesajul “fisier trimis”, insa nu se trimite…)
$file_path = storage_path('app/public/file2.pdf');
if (file_exists($file_path))
{
$fields = array('file' => '@' . $file_path);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.ssok.com/ads");
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/pdf'));
curl_setopt($ch, CURLOPT_USERPWD, "admin:pass2222");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
$result = curl_exec($ch);
curl_close($ch);
echo "fisier trimis";
}
Primesc la respone raspuns afirmativ de la API, se conecteaza, insa cred ca e ceva gresit la post_fields…