使用Guzzle发布一个斑点


Post a blob using Guzzle

是否可以使用Guzzle发布blob ?我能找到的唯一方法是使用@filename上传本地文件。该文件存储为MySQL数据库中的blob,我想将其上传到api作为post字段,而不需要将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])

目标是用Guzzle替换现有的cURL代码:

'file' => "@".$localfile.";type=".mime_content_type($localfile)

我找到了解决方案。希望这对以后的其他人有所帮助:

$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])