Преобразование функциональной команды jenkins curl в Php CURL с помощью File Transfert - PullRequest
0 голосов
/ 17 мая 2019

У меня есть команда, которая работает правильно:

curl -X POST 
http://user:password@exemple.jenkins.com:8080/job/jobname/build --form 
file0=@pathToFile --form json='{"parameter": 
[{"name":"PARAMETER1","value":"PARAMETER1_VALUE"}, 
{"name":"PARAMETER2","value":"PARAMETER2_VALUE"}, 
{"name":"FILEPARAMETERNAME","file":"file0"}]}'

И я хочу преобразовать эту команду в код PHP CURL.Но после многих поисков я не могу найти никакого решения.

В этом состоянии я выполнил следующий код:

$baseUrl = sprintf('%s/job/%s/build', $this->baseUrl, $jobName);
$fileHandler = fopen($file, 'r');
$fileData = fread($fileHandler, filesize($file));

$header_file = ['file0'=>'@'. $file];
$post_json = ['json' => $json];

$curl = curl_init($baseUrl);

curl_setopt($curl, CURLOPT_HTTPHEADER, $header_file);
curl_setopt($curl, CURLOPT_INFILE, $fileHandler);
curl_setopt($curl, CURLOPT_INFILESIZE, filesize($file));
curl_setopt($curl, CURLOPT_POSTFIELDS, $fileData);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_json);
curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl, CURLOPT_VERBOSE,true);

$info = curl_getinfo($curl);

$response = curl_exec($curl);

curl_close($curl);
fclose($fileHandler);

$ file - это путь к файлу $ json содержит "json ="значение команды

Я думаю, что где-то что-то пропустил, но не могу найти что.

Этот код работает под php 7.1.

Как я уже сказал, командавыше работает отлично.

Заранее спасибо за помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...