记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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。