我想上传一个带有数据参数的文件,但它不起作用。
$client->post('http://xxx/', [
'json' => [
'abc' => 'abc'
],
'multipart' => [
[
'name' => 'file',
'contents' => fopen('xxx.sh', 'r')
]
],
]);
它只发布abc参数。它只能在我删除json参数时发布文件 我想上传文件并在一个请求中发布一些数据,我该怎么做?
答案 0 :(得分:0)
请注意 multipart不能与form_params选项一起使用。您将需要使用其中一个。将form_params用于application / x-www-form-urlencoded请求,将multipart用于multipart / form-data请求。
来自:http://docs.guzzlephp.org/en/latest/request-options.html#multipart
这样做:
$ response = $ client-> post('http://example.com/api',[ 'multipart'=> [ [ 'name'=> '图片', 'contents'=> fopen('/ path / to / image','r') ] [ 'name'=> '名称', 'contents'=> '示例名称' ] ] ]);
来自:Guzzle ~6.0 multipart and form_params
进行。
答案 1 :(得分:0)
为了发送JSON信息,必须使用Multipart消息发送它。 Multipart不能与任何其他与身体相关的请求选项混合使用。来自Guzzle所有者的验证:https://github.com/guzzle/guzzle/issues/1386