记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\"])
      ]
    ]
  ]
]);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持免费资源网。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容