簡體   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