使用文件传输将功能性jenkins curl命令转换为PHP CURL

时间:2019-05-17 14:36:16

标签: php jenkins curl

我有一个正常运行的命令:

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下有效。

正如我所说的,上面的命令非常有效。

预先感谢您的帮助。

0 个答案:

没有答案