Отправка двоичных файлов с помощью PHP Guzzle: подробное руководство

В этой статье блога мы рассмотрим различные способы отправки двоичных файлов с помощью 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, улучшая функциональность ваших веб-приложений.