添加附件到Jira的api [英] Adding attachment to Jira's api

查看:433
本文介绍了添加附件到Jira的api的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用他们的API将文件附加到Jira案例。我在Drupal 6(PHP v.5.0)中这样做。以下是我的代码:

I am trying to attach a file to a Jira case, using their API. I am doing this in Drupal 6 (PHP v.5.0). Here is the code I have:

$ch = curl_init();
$header = array(
  'Content-Type: multipart/form-data',
   'X-Atlassian-Token: no-check'
);
$attachmentPath = $this->get_file_uploads();
//$attachmentPath comes out to be something like:
//http://localhost/mySite/web/system/files/my_folder/DSC_0344_3.JPG

$data = array('file'=>"@". $attachmentPath, 'filename'=>'test.png');
$url= 'https://mysite.atlassian.net/rest/api/2/issue/20612/attachments/';

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_HTTPHEADER, $this->get_jira_headers());
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch,  CURLOPT_POSTFIELDS ,$data);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERPWD, "myusername:mypassword");

$result = curl_exec($ch);
$ch_error = curl_error($ch);

问题是$结果出来是false,$ ch_error表示它不能t打开文件。这个错误是否与Drupal有关,或者与我向Jira发送请求有什么关系? BTW,如果我使用绝对路径,就像这样:

The problem is that the $result comes out as false, and the $ch_error states that it couldn't open the file. Does this error have something to do with Drupal or something to do with how I'm sending my request to Jira? BTW, if I use an absolute path, though, like this:

$attachmentPath = 'C:\wamp\www\mySite\web\sites\mySite.net\files\my_folder\DSC_0333.JPG';

上传工作正常。

推荐答案

这应该适合你:

$data = array('file'=>"@". $attachmentPath . ';filename=test.png');

这是cURL PHP< 5.2.10的错误,您可以在PHP中看到跟踪器: https://bugs.php.net/bug.php?id=48962(在您看到的评论中,它已被修复)

This was a bug with cURL PHP <5.2.10, you can see this in the PHP bug tracker: https://bugs.php.net/bug.php?id=48962 (And in the comments you see, that it has been fixed)

如果您使用PHP 5.5.0+,您可以使用以下内容:

And if you use PHP 5.5.0+ you can use this:

$cfile = new CURLFile($attachmentPath);
$cfile->setPostFilename('test.png');
$data = array('file'=>$cfile);

您还可以在JIRA注释中看到这一点: JIRA评论

You can also see this in a JIRA comment: JIRA Comment

另外我想你想改变这一点:

Also i think you want to change this:

curl_setopt($ch, CURLOPT_HTTPHEADER, $this->get_jira_headers());

到:

curl_setopt($ch, CURLOPT_HTTPHEADER, $header);

这篇关于添加附件到Jira的api的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆