如何将 Laravel $request->file(...) 直接传递给 Guzzle POST 请求



如何通过 POST 请求将$request->file(...)传递给Guzzle或者甚至可能吗?我应该先上传它吗?

这是我的尝试:

$client = new Client([ 'base_uri' => 'http://api.domain.com']);
$response = $client->post(
        '/api/dosomething',
        [
            'multipart' => [
                [
                  'Content-type' => 'multipart/form-data',
                  'name' => 'photo_1',
                  'contents' => $request->file('photo_1')
                ]
            ]
         ]
); 

这是行不通的。响应正文只是空白。

我找到了下面的解决方案(我们需要使用代码$file->getPathName()指定临时文件夹中临时文件的路径(:

$client = new Client([ 'base_uri' => 'http://api.domain.com']);
$file = $request->file('photo_1')
$response = $client->post(
        '/api/dosomething',
        [
            'multipart' => [
                [
                  'Content-type' => 'multipart/form-data',
                  'name' => 'photo_1',
                  'contents' => fopen($file->getPathName(), 'r')
                ]
            ]
         ]
); 

最新更新