私はこのようにファイルをアップロードし、同時に投稿パラメータを送信しようとしています:
$response = $client->post('http://example.com/api', [
'form_params' => [
'name' => 'Example name',
],
'multipart' => [
[
'name' => 'image',
'contents' => fopen('/path/to/image', 'r')
]
]
]);
ただし、form_paramsフィールドは無視され、マルチパートフィールドのみが投稿本文に表示されます。 guzzle 6.0で両方を送信できますか?
私は同じ問題に出くわしました。 form_paramsを multipart 配列に追加する必要があります。ここで、「name」はフォーム要素名であり、「contents」は値です。あなたが提供したサンプルコードは次のようになります:
$response = $client->post('http://example.com/api', [
'multipart' => [
[
'name' => 'image',
'contents' => fopen('/path/to/image', 'r')
],
[
'name' => 'name',
'contents' => 'Example name'
]
]
]);
私もそこにたどり着きましたが、残念ながら多次元のparams配列がある場合は機能しません。私がそれを機能させる唯一の方法は、あなたがform_paramatersを配列のクエリパラメータとして送信する場合です:
$response = $client->post('http://example.com/api', [
'query' => [
'name' => 'Example name',
],
'multipart' => [
[
'name' => 'image',
'contents' => fopen('/path/to/image', 'r')
]
]
]);