前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >记Laravel调用Gin接口调用formData上传文件的实现方法

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

作者头像
砸漏
发布2020-10-20 11:20:31
2K0
发布2020-10-20 11:20:31
举报
文章被收录于专栏:恩蓝脚本

第一次错误:

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

代码语言:javascript
复制
$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 才是王道

代码语言:javascript
复制
```
$response = $client- request('POST', 'http://post', [
    'multipart' =  [
      [
        'name'   =  'field_name',
        'contents' =  json_encode(["abc", "abd"])
      ]
    ]
  ]
]);

以上就是本文的全部内容,希望对大家的学习有所帮助。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-09-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档