Jira прикрепить файл для выпуска с PHP и 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. удаление «Content-Type: multipart / form-data»
  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. Я чувствую, что мой код должен работать … но явно нет.

0

Решение

Мое первоначальное предположение было неверным: оно работает с обоими нет проверка а также NOCHECK — это не важно

Вместо ввода имени файла в качестве параметра для fileВы сначала создаете объект файла curl следующим образом:

$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);
?>
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]