Php 如何使用Guzzle通过POST请求从URL发送文件

Php 如何使用Guzzle通过POST请求从URL发送文件,php,laravel,guzzle,Php,Laravel,Guzzle,当我以这种方式进行测试时,我使用的端点工作正常: curl -X POST ".../api/save" -H "accept: application/json" -H "Content-Type: multipart/form-data" -F "file=@test.xlsx;type=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet&qu

当我以这种方式进行测试时,我使用的端点工作正常:

curl -X POST ".../api/save" -H "accept: application/json" -H "Content-Type: multipart/form-data" -F "file=@test.xlsx;type=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
现在我需要在Laravel中使用Guzzle发送文件,但我从API端点收到了400个错误请求。该文件存储在公共磁盘中,因此我将发送URL

这就是我到目前为止所做的:

   $headers = [
            'Authorization' => 'Bearer ' . $token,
            'Accept' => 'application/json',
            'Content-Type' => 'multipart/form-data',
        ];

    $response = $this->client->request('POST', '.../api/save', [
        'headers' => $headers,
        'multipart' => [
            [
                'name' => 'image_file',
                'contents' => $file->url,
            ]
        ]
    ]);

您试图做的是破坏一些http协议

在请求中,您不能发送ressource链接并期望服务器在恢复请求处理之前下载该链接

或者从url下载文件并将其内容包含在请求中


发送url并在服务器上下载代码逻辑。

任何喜欢树懒的人都可以使用我的VotechCheck,这可能会有所帮助->