我有一个正常运行的命令:
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下有效。
正如我所说的,上面的命令非常有效。
预先感谢您的帮助。