添加附件到Jira的api [英] Adding attachment to Jira's 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屋!