官网的例子:
multipart
摘要
设置请求的主体为 multipart/form-data 表单。
类型
array
常量
GuzzleHttp\RequestOptions::MULTIPART
multipart 的值是一个关联数组,每个元素包含以下键值对:
name: (string, required) 表单字段名称
contents: (StreamInterface/resource/string, required) 表单元素中要使用的数据
headers: (array) 可选的表单元素要使用的键值对数组
filename: (string) 可选的作为要发送的文件名称
$client->request('POST', '/post', [
'multipart' => [
[
'name' => 'foo',
'contents' => 'data',
'headers' => ['X-Baz' => 'bar']
],
[
'name' => 'baz',
'contents' => fopen('/path/to/file', 'r')
],
[
'name' => 'qux',
'contents' => fopen('/path/to/file', 'r'),
'filename' => 'custom_filename.txt'
],
]
]);
我们会遇到一下报错
GuzzleHttp\Exception\ClientException: Client error: POST http://XXXXX resulted in a 400 Bad Request response: {“code”:3,“message”:“invalid request: parsing error - check content-type and body”,“data”:{}} in D:\XXXXXXXXX\vendor\guzzlehttp\guzzle\src\Exception\RequestException.php on line 113
是因为使用 multipart 进行文件处理时,会将 Content-Type 进行重新定义
深度学习 Guzzle
|