Используйте клиент Guzzle HTTP вместо curl. Я пробовал curl, но он не работает.
Сначала установите composer в текущем каталоге с помощью следующей команды:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '48e3236262b34d30969dca3c37281b3b4bbe3221bda826ac6a9a62d6444cdb0dcd0615698a5cbe587c3f0fe57a54d8f5') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
После обновления композитора запустите следующую команду, чтобы установить Guzzle (по умолчанию будет 3.9, требуется php> = 5.3.3. Вы можете указать, основываясь на вашей версии php):
php composer.phar требуют guzzlehttp / guzzle
После успешной установки клиента Guzzle. Пожалуйста, используйте приведенный ниже код для загрузки файла
require 'vendor/autoload.php';
$client =new \GuzzleHttp\Client();
$image_path='/path_to_your_image/my_image.png';
$result=$client->request('PUT',$target_url, [
'headers' => [
'Authorization' => 'Bearer ' . $token
],
'body' => fopen($image_path, 'r'),
]);
Вы получите полный успех ниже ответа
HTTP / 2 201
дата: ср 10 апреля 09:14:44 UTC 2019 сервер: Play set-cookie:
Ланг = v = 2 & LANG = EN-US; Path = /; Домен = api.linkedin.com
x-ambry-creation-time: ср 10 апреля 09:14:44 UTC 2019
access-control-allow-origin: https://www.linkedin.com content-length:
0
Guzzle - это PHP-клиент HTTP , который упрощает отправку HTTP-запросов и упрощает интеграцию с веб-службами.
- Простой интерфейс для создания строк запросов, запросов POST, потоковой передачи больших загрузок, потоковой передачи больших загрузок, использования файлов cookie HTTP, загрузки данных JSON и т. Д. *
- Может отправлять как синхронные, так и асинхронные запросы, используя один и тот же интерфейс.
Использует интерфейсы PSR-7 для запросов, ответов и потоков. Это позволяет вам использовать другие PSR-7-совместимые библиотеки с Guzzle.
- Абстрагирует основной HTTP-транспорт, позволяя писать независимый от среды и транспорта код; т.е. нет жесткой зависимости от циклов cURL, PHP, сокетов или неблокирующих циклов событий.
- Система промежуточного программного обеспечения позволяет расширять и составлять поведение клиента.