繁体   English   中英

Jira附加文件将与PHP和CURL一起发布

[英]Jira attach file to issue with PHP and CURL

我找到了几个有关如何在jira中上载问题附件的示例,但是我无法使其中任何一个起作用。 我在Jira社区帮助论坛上发布了这个问题,但是已经有一个多星期,有0条回复,因此希望这里的社区能够为您提供帮助。

这是我目前的尝试:

 $Jirausername = 'myUsername';
    $Jirapassword = 'myPassword';

    $ch=curl_init();
$headers = array(
    'X-Atlassian-Token: nocheck',
    'Content-Type: multipart/form-data'
);
$data = array('file' => "testing.txt");


curl_setopt_array(
    $ch,
    array(
        CURLOPT_URL=>'https://myCompany.net/rest/api/latest/issue/TAG-78/attachments',
        CURLOPT_POST=>true,
        CURLOPT_VERBOSE=>1,
        CURLOPT_POSTFIELDS=>$data,
        CURLOPT_SSL_VERIFYHOST=> 0,
        CURLOPT_SSL_VERIFYPEER=> 0,
        CURLOPT_RETURNTRANSFER=>true,
        CURLOPT_HEADER=>false,
        CURLOPT_HTTPHEADER=> $headers,
        CURLOPT_USERPWD=>"$Jirausername:$Jirapassword"
    )
);
$result=curl_exec($ch);
$ch_error = curl_error($ch);
if ($ch_error) {
    echo "cURL Error: $ch_error";
} else {
    var_dump($result);
}
curl_close($ch);

testing.txt与该文件位于同一目录中。 我已经在托管此的网络服务器上安装了curl,可以在jira中创建问题,只是似乎无法上传附件...

当我运行此页面时,它显示:

string(0) "" 

无需上传附件,也无需多说。 有什么想法我做错了吗?

编辑:添加赏金,这是我尝试过的一些事情:

  1. 尝试不检查和不检查
  2. 同时尝试@ testing.txt和testing.txt
  3. 删除“内容类型:多部分/表单数据”
  4. 这样的完整路径: $data = array('file'=>"@C:\\xampp\\htdocs\\Website\\testing.txt ,'filename'=>'testing.txt');
  5. 由于已知的卷曲错误,也尝试过这种方法: $data = array('file'=>"@C:\\xampp\\htdocs\\Website\\testing.txt" ';filename=testing.txt');

以上所有组合。 不管我尝试什么,都行不通。 还确保了我是Jira中的管理员级别的用户。 我觉得我的代码应该可以工作...但是显然不能。

我最初的假设是错误的:它的作品既NOCHECKNOCHECK -没关系。

而不是把文件名作为参数的file ,你首先要创建一个这样的卷发文件对象:

$cfile = curl_file_create('testing.txt');

然后将其放入数组:

$data = array('file' => $cfile);

这是为我工作的完整解决方案:

<?php
 $Jirausername = '<username>';
 $Jirapassword = '<password>';

$ch=curl_init();
$headers = array(
    'X-Atlassian-Token: nocheck',
    'Content-Type: multipart/form-data'
);


$cfile = curl_file_create('testing.txt');
$data = array('file' => $cfile);


curl_setopt_array(
    $ch,
    array(
        CURLOPT_URL=>'https://<JIRA-SERVER>/rest/api/latest/issue/<ISSUE-KEY>/attachments',
        CURLOPT_POST=>true,
        CURLOPT_VERBOSE=>1,
        CURLOPT_POSTFIELDS=>$data,
        CURLOPT_INFILESIZE => 5,
        CURLOPT_SSL_VERIFYHOST=> 0,
        CURLOPT_SSL_VERIFYPEER=> 0,
        CURLOPT_RETURNTRANSFER=>true,
        CURLOPT_HEADER=>true,
        CURLOPT_HTTPHEADER=> $headers,
        CURLOPT_USERPWD=>"$Jirausername:$Jirapassword"
    )
);
$result=curl_exec($ch);
$ch_error = curl_error($ch);
if ($ch_error) {
    echo "cURL Error: $ch_error";
} else {
    var_dump($result);
}
curl_close($ch);
?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM