CURL post de Arquivo via PHP
No PHP 5.6 e superior você tem o
curl_file_create
, você pode utilizar ele.curl -F file=@/home/user/picture.jpg https://api.dominio.com/pictures
Isso indica exatamente:
-F
indica que é ummultipart/form-data
e por isso oCURLOPT_POSTFIELDS
deve ser passado porarray
.- O "
file
" indica o nome do parâmetro, ou seja a "chave". - O "
/home/user/picture.jpg
" indica o caminho do arquivo, o@
antes dele indica que é para ser lido o arquivo do caminho (e não enviado/home/user/picture.jpg
como texto).
Sabendo disso basta utilizar o CURL do PHP:
$ch = curl_init('https://api.dominio.com/pictures');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => [
'file' => curl_file_create('/home/user/picture.jpg')
]
]);
$resposta = curl_exec($ch);
curl_close($ch);
Se estiver em versões antigas o PHP nem tudo está perdido, você pode utilizar:
CURLOPT_POSTFIELDS => [
'file' => '@/home/user/picture.jpg'
]
Comentários
Postar um comentário