记 Laravel 调用 Gin 接口调用 formData 上传文件

第一次错误:
[output] 【c.FormFile error==>】 multipart: NextPart: EOF
file 没有传值,或者非预定格式,stream resource
第二次错误:

[output] 【c.FormFile error==>】 multipart: NextPart: bufio: buffer full
 header头不需要 content-type => 'multipart/form-data'

php调用参考:

发送表单文件

你可以通过使用 multipart 请求参数来发送表单(表单enctype属性需要设置 multipart/form-data )文件, 该参数接收一个包含多个关联数组的数组,每个关联数组包含一下键名:

  • name: (必须,字符串) 映射到表单字段的名称。
  • contents: (必须,混合) 提供一个字符串,可以是 fopen 返回的资源、或者一个

Psr\Http\Message\StreamInterface 的实例。

$response = $client->request('POST', 'http://post', [
    'multipart' => [
        [
            'name'     => 'field_name',
            'contents' => 'abc'
        ],
        [
            'name'     => 'file_name',
            'contents' => fopen('/path/to/file', 'r')
        ],
        [
            'name'     => 'other_file',
            'contents' => 'hello',
            'filename' => 'filename.txt',
            'headers'  => [
                'X-Foo' => 'this is an extra header to include'
            ]
        ]
    ]
]);

ps:
multipart格式如上,需要注意的是参数如果是数组,同样需要重组,不重组就是第三个问题
Invalid resource type: array
修改参数格式为json,毕竟跨语言json xml 才是王道

```
$response = $client->request('POST', 'http://post', [
        'multipart' => [
            [
                'name'     => 'field_name',
                'contents' => json_encode(["abc", "abd"])
            ]
        ]
    ]
]);
本作品采用《CC 协议》,转载必须注明作者和本文链接
Chiin
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!