Muszę się komunikować z pewnym API:
Działa mi (czyli jest akceptowany przez API) następujący kod:
$FilePath=$upload["filepath"];
$cmd
=
'curl '.
'-X POST "'.$url.'" '.
'-H "Authorization: Token '.$AzonToken.'" '.
'-H "accept: application/json" '.
'-F "file=@'.$FilePath.'"'
;
shell_exec($cmd);
Z tym że skubany przyjmuję nazwę oryginalnego pliku i nie wiem jak z tym sobie zaradzić, moja próba:
$headers=
[
"Authorization: Token {$AzonToken}",
"Accept: application/json",
"Content-Type: multipart/form-data"
];
$FilePath=$upload["filepath"];
$FileMime=$upload["mime"];
$ext=$upload["ext"];
$FileName="{$rb}.{$ext}";
$PostFields=['name' => new CurlFile($FilePath,$FileMime,$FileName)];
$curl=curl_init();
curl_setopt($curl,CURLOPT_URL,$url);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl,CURLOPT_POST,true);
curl_setopt($curl,CURLOPT_HEADER,true);
curl_setopt($curl,CURLOPT_HTTPHEADER,$headers);
curl_setopt($curl,CURLOPT_SAFE_UPLOAD,true);
curl_setopt($curl,CURLOPT_POSTFIELDS,$PostFields);
$responce=curl_exec($curl);
API zwraca {"message":"success"}
ale niczego nie dodaje!
Może ktoś podpowie jak to rozwiązać w pierwszym bądź w drugim wariancie?