Jak przekazać PostField w curl_setopt()

0

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?

1

Znalazłem, żaden zdrowo myślący człowiek tego się się nie domyśli!
Dobrze że trawki zapaliłem :D

trzeba zamienić: $PostFields=['name' => new CurlFile($FilePath,$FileMime,$FileName)];
na: $PostFields=['file' => new CurlFile($FilePath,$FileMime,$FileName)];

1 użytkowników online, w tym zalogowanych: 0, gości: 1