use*_*281 5 php laravel guzzle
是否可以使用Guzzle发布blob?我能找到的唯一方法是使用@filename上传本地文件.该文件作为blob存储在MySQL数据库中,我想将其作为post字段上传到api,而没有将blob保存到磁盘的冗余(以及随附的权限/路径问题),上传@filename ,然后取消链接文件.这是我所拥有的代码,除了blob之外的所有代码.我需要'file'字段将数据保存为blob.
$data = array(
'first_name' => $fname,
'last_name' => $lname,
'email' => $email,
'partner_key' => 'qwerty',
'secret_key' => 'qwerty',
'file' => $fileblob
);
$curl = new \GuzzleHttp\Client();
return $curl->post('https://www.api.com',['verify'=>false,'body'=>$data])
Run Code Online (Sandbox Code Playgroud)
目标是使用Guzzle替换现有的cURL代码:
'file' => "@".$localfile.";type=".mime_content_type($localfile)
Run Code Online (Sandbox Code Playgroud)
我找到了解决方案。希望这对将来的其他人有帮助:
$data = array(
'first_name' => $fname,
'last_name' => $lname,
'email' => $email,
'partner_key' => 'qwerty',
'secret_key' => 'qwerty',
'file' => new \GuzzleHttp\Post\PostFile('filename', $fileblob)
);
$curl = new \GuzzleHttp\Client();
return $curl->post('https://www.api.com',['verify'=>false,'body'=>$data])
Run Code Online (Sandbox Code Playgroud)