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


Posted in PHP onDecember 12, 2019

第一次错误:

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
如何使用脚本模仿登陆过程
Nov 22 PHP
从MySQL数据库表中取出随机数据的代码
Sep 05 PHP
php 计算两个时间戳相隔的时间的函数(小时)
Dec 18 PHP
PHP+ajax 无刷新删除数据
Feb 20 PHP
采集邮箱的php代码(抓取网页中的邮箱地址)
Jul 17 PHP
解析php curl_setopt 函数的相关应用及介绍
Jun 17 PHP
thinkphp模板的包含与渲染实例分析
Nov 26 PHP
php 基础函数
Feb 10 PHP
PHP基于PDO实现的SQLite操作类【包含增删改查及事务等操作】
Jun 21 PHP
yii2.0整合阿里云oss删除单个文件的方法
Sep 19 PHP
PHP中十六进制颜色与RGB颜色值互转的方法
Mar 18 PHP
详细分析PHP7与PHP5区别
Jun 26 PHP
PHP命名空间(namespace)原理与用法详解
Dec 11 #PHP
在 Laravel 6 中缓存数据库查询结果的方法
Dec 11 #PHP
PHP超级全局变量【$GLOBALS,$_SERVER,$_REQUEST等】用法实例分析
Dec 11 #PHP
关于PHP5.6+版本“No input file specified”问题的解决
Dec 11 #PHP
Laravel5.1 框架数据库操作DB运行原生SQL的方法分析
Jan 07 #PHP
Laravel5.1 框架表单验证操作实例详解
Jan 07 #PHP
PHP字符串与数组处理函数用法小结
Jan 07 #PHP
You might like
全国FM电台频率大全 - 4 山西省
2020/03/11 无线电
一个不易被发现的PHP后门代码解析
2014/07/05 PHP
PHP遍历数组的三种方法及效率对比分析
2015/02/12 PHP
CentOS 安装 PHP5.5+Redis+XDebug+Nginx+MySQL全纪录
2015/03/25 PHP
PHP常见漏洞攻击分析
2016/02/21 PHP
Yii2框架BootStrap样式的深入理解
2016/11/07 PHP
Zend Framework分发器用法示例
2016/12/11 PHP
js实现拉伸拖动iframe的具体代码
2013/08/03 Javascript
js jquery分别实现动态的文件上传操作按钮的添加和删除
2014/01/13 Javascript
自定义vue全局组件use使用、vuex的使用详解
2017/06/14 Javascript
详解cordova打包成webapp的方法
2017/10/18 Javascript
微信小程序实战篇之购物车的实现代码示例
2017/11/30 Javascript
Layui给数据表格动态添加一行并跳转到添加行所在页的方法
2018/08/20 Javascript
koa router 多文件引入的方法示例
2019/05/22 Javascript
JS代码触发事件代码实例
2020/01/02 Javascript
在Python中进行自动化单元测试的教程
2015/04/15 Python
Python实现合并字典的方法
2015/07/07 Python
Python中使用多进程来实现并行处理的方法小结
2017/08/09 Python
python实现大转盘抽奖效果
2019/01/22 Python
关于python多重赋值的小问题
2019/04/17 Python
python全栈知识点总结
2019/07/01 Python
简单了解python中的与或非运算
2019/09/18 Python
Python实现把类当做字典来访问
2019/12/16 Python
利用Python裁切tiff图像且读取tiff,shp文件的实例
2020/03/10 Python
Python astype(np.float)函数使用方法解析
2020/06/08 Python
python开发一个解析protobuf文件的简单编译器
2020/11/17 Python
HTML5实现Notification API桌面通知功能
2016/03/02 HTML / CSS
JSF面试题:Jsf中导航的标签是什么
2013/04/20 面试题
简单说下OSPF的操作过程
2014/08/13 面试题
什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?
2014/01/19 面试题
大学生期末自我鉴定
2014/02/01 职场文书
高中生物教学反思
2014/02/05 职场文书
会计专业个人自我鉴定
2014/03/21 职场文书
电子商务实训报告总结
2014/11/05 职场文书
初中教师个人工作总结
2015/02/10 职场文书
毕业生就业推荐表自我评价
2015/03/02 职场文书