Laravel 7 HTTP 客户端附加多个文件

use*_*357 5 laravel guzzle

我正在尝试将 POST 发送到 REST API,在该 API 中我需要从用户输入表单发送多个文件。我已经设法让它与单个文件一起工作,但是当有多个文件作为数组($file[])发送时,我在 laravel 文档中看不到任何内容来显示如何完成此操作。

$response = 'API_URL';
        $response = Http::withToken(ENV('API_KEY'))
        ->attach('file', fopen($request->file, 'r'))
        ->post($url, [
           'uuid' => $request->uuid,
        ]);
Run Code Online (Sandbox Code Playgroud)

Muh*_*kur 7

您可以通过以下方式做到这一点:

->attach('file[0]', fopen($request->file[0], 'r'))
->attach('file[1]', fopen($request->file[1], 'r'))
Run Code Online (Sandbox Code Playgroud)

如果您$files是要发送的文件数组,您可以执行以下操作:

$response = Http::withToken(ENV('API_KEY'));

foreach ($files as $k => $file) {
  $response = $response->attach('file['.$k.']', $file);
}

$response = $response->post($url, [
  'uuid' => $request->uuid,
]);
Run Code Online (Sandbox Code Playgroud)