В этой статье блога мы рассмотрим различные способы отправки двоичных файлов с помощью PHP Guzzle. Guzzle — это мощная и популярная клиентская библиотека HTTP для PHP, которая упрощает процесс отправки HTTP-запросов и взаимодействия с веб-сервисами. Мы рассмотрим различные сценарии и предоставим примеры кода для демонстрации каждого метода.
Метод 1: отправка двоичного файла в качестве тела запроса
use GuzzleHttp\Client;
use GuzzleHttp\Psr7\Request;
$client = new Client();
$response = $client->request('POST', 'https://example.com/upload', [
'body' => fopen('/path/to/file.jpg', 'r'),
]);
Способ 2: отправка двоичного файла в качестве поля формы
use GuzzleHttp\Client;
use GuzzleHttp\Psr7\Request;
use GuzzleHttp\Psr7\MultipartStream;
$client = new Client();
$stream = new MultipartStream([
[
'name' => 'file',
'contents' => fopen('/path/to/file.jpg', 'r'),
],
]);
$request = new Request('POST', 'https://example.com/upload', [], $stream);
$response = $client->send($request);
Метод 3: отправка двоичного файла с настраиваемыми заголовками
use GuzzleHttp\Client;
use GuzzleHttp\Psr7\Request;
$client = new Client();
$headers = [
'Content-Disposition' => 'attachment; filename="file.jpg"',
'Content-Type' => 'image/jpeg',
];
$request = new Request('POST', 'https://example.com/upload', $headers, fopen('/path/to/file.jpg', 'r'));
$response = $client->send($request);
Метод 4. Отправка двоичного файла с использованием заранее подписанного URL
use GuzzleHttp\Client;
$client = new Client();
$presignedUrl = 'https://example.com/upload?token=abc123';
$response = $client->put($presignedUrl, [
'body' => fopen('/path/to/file.jpg', 'r'),
]);
В этой статье мы рассмотрели несколько способов отправки двоичных файлов с помощью PHP Guzzle. Мы рассмотрели отправку двоичного файла в качестве тела запроса, отправку его в качестве поля формы, добавление пользовательских заголовков и использование предварительно подписанного URL-адреса. Каждый метод предлагает свой подход в зависимости от ваших конкретных требований. Guzzle упрощает процесс отправки HTTP-запросов и упрощает обработку загрузки двоичных файлов в PHP.
Используя методы, обсуждаемые в этой статье, вы можете эффективно передавать двоичные файлы по HTTP с помощью PHP Guzzle, улучшая функциональность ваших веб-приложений.