Laravel 7 HTTP 客户端附加多个文件
Laravel 7 HTTP client attach multiple files
我正在尝试 POST 休息 API 我需要从用户输入表单发送多个文件。我已经设法让它与单个文件一起工作,但是当有多个文件作为数组($file[])发送时,我在 laravel 文档中看不到任何东西来说明这是怎么回事完成。
$response = 'API_URL';
$response = Http::withToken(ENV('API_KEY'))
->attach('file', fopen($request->file, 'r'))
->post($url, [
'uuid' => $request->uuid,
]);
您可以通过以下方式完成:
->attach('file[0]', fopen($request->file[0], 'r'))
->attach('file[1]', fopen($request->file[1], 'r'))
如果您的 $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,
]);
附加多个文件,如果文件名也未知,连同请求数据在一个请求中,如果请求有文件或没有文件。授权 header
if ($method == 'POST') {
// Attached multiple file with the request data
$response = Http::withHeaders($headers);
if($request->files) {
foreach ($request->files as $key=> $file) {
if ($request->hasFile($key)) {
// get Illuminate\Http\UploadedFile instance
$image = $request->file($key);
$fileName = $request->file($key)->getClientOriginalName();
$response = $response->attach($key, $image->get(),$fileName);
}
}
$response = $response->post($this->$requestUrl, $request->all());
} else {
$response = Http::withHeaders($headers)->post($this->webApiBaseUri, $request->all());
}
}
我正在尝试 POST 休息 API 我需要从用户输入表单发送多个文件。我已经设法让它与单个文件一起工作,但是当有多个文件作为数组($file[])发送时,我在 laravel 文档中看不到任何东西来说明这是怎么回事完成。
$response = 'API_URL';
$response = Http::withToken(ENV('API_KEY'))
->attach('file', fopen($request->file, 'r'))
->post($url, [
'uuid' => $request->uuid,
]);
您可以通过以下方式完成:
->attach('file[0]', fopen($request->file[0], 'r'))
->attach('file[1]', fopen($request->file[1], 'r'))
如果您的 $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,
]);
附加多个文件,如果文件名也未知,连同请求数据在一个请求中,如果请求有文件或没有文件。授权 header
if ($method == 'POST') {
// Attached multiple file with the request data
$response = Http::withHeaders($headers);
if($request->files) {
foreach ($request->files as $key=> $file) {
if ($request->hasFile($key)) {
// get Illuminate\Http\UploadedFile instance
$image = $request->file($key);
$fileName = $request->file($key)->getClientOriginalName();
$response = $response->attach($key, $image->get(),$fileName);
}
}
$response = $response->post($this->$requestUrl, $request->all());
} else {
$response = Http::withHeaders($headers)->post($this->webApiBaseUri, $request->all());
}
}