У меня есть команда, которая работает правильно:
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.
Как я уже сказал, командавыше работает отлично.
Заранее спасибо за помощь.