记Laravel调用Gin接口调用formData上传文件的实现方法
第一次错误:
[output]【c.FormFileerror==>】multipart:NextPart:EOF
file没有传值,或者非预定格式,streamresource
第二次错误:
[output]【c.FormFileerror==>】multipart:NextPart:bufio:bufferfull
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'=>'thisisanextraheadertoinclude'
]
]
]
]);
ps:
multipart格式如上,需要注意的是参数如果是数组,同样需要重组,不重组就是第三个问题:
Invalidresourcetype:array
修改参数格式为json,毕竟跨语言jsonxml才是王道
```
$response=$client->request('POST','http://post',[
'multipart'=>[
[
'name'=>'field_name',
'contents'=>json_encode(["abc","abd"])
]
]
]
]);
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。