Метод attach
Метод attach применяется к запросу HTTP-клиента
Laravel и позволяет прикрепить файл к мультипартному
запросу. Первым параметром передаётся имя поля,
вторым - содержимое файла, третьим - имя файла
(необязательно), четвёртым - массив дополнительных
заголовков (необязательно). Если необходимо
прикрепить несколько файлов, метод можно вызывать
несколько раз или передать массив.
Синтаксис
<?php
Http::attach($name, $contents, $filename, $headers);
?>
Пример
Давайте отправим POST-запрос с прикреплённым файлом:
<?php
namespace AppHttpControllers;
use IlluminateSupportFacadesHttp;
class FileController extends Controller
{
public function upload()
{
$res = Http::attach(
'avatar',
file_get_contents('path/to/avatar.jpg'),
'avatar.jpg'
)->post('https://example.com/upload');
echo $res->status();
}
}
?>
Результат выполнения кода:
"201"
Пример
Давайте прикрепим файл с указанием дополнительных заголовков:
<?php
namespace AppHttpControllers;
use IlluminateSupportFacadesHttp;
class DocumentController extends Controller
{
public function store()
{
$res = Http::attach(
'document',
file_get_contents('path/to/document.pdf'),
'document.pdf',
['Content-Type' => 'application/pdf']
)->post('https://example.com/documents');
if ($res->successful()) {
echo $res->json('message');
}
}
}
?>
Результат выполнения кода:
"Document uploaded successfully"
Пример
Давайте прикрепим несколько файлов к одному запросу:
<?php
namespace AppHttpControllers;
use IlluminateSupportFacadesHttp;
class GalleryController extends Controller
{
public function uploadMultiple()
{
$res = Http::attach(
'images[]',
file_get_contents('path/to/image1.jpg'),
'image1.jpg'
)->attach(
'images[]',
file_get_contents('path/to/image2.png'),
'image2.png'
)->post('https://example.com/gallery');
echo $res->body();
}
}
?>
Результат выполнения кода:
"Images uploaded successfully"
Смотрите также
-
метод
post,
который отправляет POST-запрос -
метод
withHeaders,
который добавляет заголовки к запросу -
метод
asJson,
который отправляет JSON-запрос -
метод
withToken,
который добавляет Bearer-токен к запросу