记Laravel调用Gin接口调用formData上传文件的实现方法

吾爱主题 阅读:123 2021-09-23 15:58:00 评论:0

第一次错误:

[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 的实例。

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 $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 才是王道

?
1 2 3 4 5 6 7 8 9 10 ``` $response = $client ->request( 'POST' , 'http://post' , [      'multipart' => [        [          'name'   => 'field_name' ,          'contents' => json_encode([ "abc" , "abd" ])        ]      ]    ] ]);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://learnku.com/articles/37885

可以去百度分享获取分享代码输入这里。
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

【腾讯云】云服务器产品特惠热卖中
搜索
标签列表
    关注我们

    了解等多精彩内容