Основное преобразование Curl в PHP

Я пытаюсь выяснить, как сделать эту команду CURL:

curl https://uploads.stripe.com/v1/files \
-u sk_test_OCHANGEDPcDr0: \
-F purpose=identity_document \
-F file="@/path/to/a/file.jpg"

В PHP я использую этот скрипт PHP:
https://github.com/php-mod/curl

И попробовал это:

$curl->setBasicAuthentication('-u', 'sk_live_CHANGED');
$curl->post('https://uploads.stripe.com/v1/files', array(
'purpose' => 'dispute_evidence',
'file' => $targetFile,
));

Но я думаю, что синтаксис совершенно неправильный, я действительно новичок в curl и не понимаю, каковы все различные эквиваленты PHP -u ​​и -F команд.

0

Решение

-u username:password опция переводится как:

$curl->setBasicAuthentication('username', 'password');

Чтобы загрузить файл, нужно поставить @ перед именем файла, как в curl команда.

$curl->post('https://uploads.stripe.com/v1/files', array(
'purpose' => 'dispute_evidence',
'file' => '@' . $targetFile,
));
1

Другие решения

Возможно, вы захотите попробовать что-то вроде этого:

$headers = array(
'Authorization: Bearer ' . $your_api_key,
'Content-Type: multipart/form-data'
);

$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => 'https://uploads.stripe.com/v1/files',
CURLOPT_POST => true,
CURLOPT_INFILESIZE => '10000',
CURLOPT_HTTPHEADER => $headers,
CURLOPT_POSTFIELDS => array(
'purpose' => 'dispute_evidence',
'file' => '@' . realpath($path_to_file)
)
));

$resp = curl_exec($curl);
curl_close($curl);

РЕДАКТИРОВАТЬ: В качестве альтернативы, вы можете загружать файлы прямо из браузера как это.

1

Если у вас есть функционал curl Вызов команды, вы можете получить то, что вы после, добавив --libcurl filename.c вариант.

Это сгенерирует C-программу, которая сделает то, что сделала ваша командная строка. Несмотря на то, что вы используете PHP, а не C, это все равно полезно, потому что они оба используют одни и те же имена для различных вариантов.

0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector