Мобильная
версия

Отправка файлов посредством cURL

Дата: Категория: PHP

Все мы знакомы с такой замечательной вещью как curl. Все его особенности сегодня я не собираюсь перечислять, а в данной заметке я опишу небольшой рецепт по отправке файлов с помощью cURL

В принципе на статью это даже и не тянет - просто небольшой рецептик.

Все очень и очень просто. cURL может отправлять локальные файлы, и для этого перед полным путем к файлу нужно поставить "@".
И все.
После этого cURL передаст его в массив $_FILES и с ним можно будет производить все действия.

Для наглядности покажу пример.
Создадим первый файл - index.php

$postData['image'] = '@' . __DIR__ . DIRECTORY_SEPARATOR . '1.png';
$postData['data'] = 'any text';

$ch = curl_init('http://test.local/post.php');
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_VERBOSE, true);
$response = curl_exec($ch);
echo $response;

Как видите (2 строка), в туже папку где лежит скрипт, я положил картинку 1.png и сейчас будем ее отправлять.
Создадим файл post.php со следующим содержанием

echo 'REQUEST' . "\n";
print_r($_REQUEST);
echo 'FILES' . "\n";
print_r($_FILES);

Выведем массив с текстовой информацией ($_REQUEST в нашем случае должен вывести 'any text' - 3 строка файла index.php), и массив с файлами ($_FILES)
А на выводе мы получаем следующее

REQUEST
Array
(
    [data] => any text
)
FILES
Array
(
    [image] => Array
        (
            [name] => 1.png
            [type] => application/octet-stream
            [tmp_name] => /tmp/phpFMWYFd
            [error] => 0
            [size] => 94383
        )

)

Как видите - все работает. Надеюсь данная заметка поможет кому либо сохранить время.

Теги: #php, #cURL, #работа с файлами

Ваша оценка:

Рейтинг: 6.5 (Оценок: 3)

Комментарий:

Copyright © DOC_tr 2015-2017 г. Все права защищены
Яндекс.Метрика
Перейти к мобильной версии