php – 为Jira的api添加附件

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 为Jira的api添加附件脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用他们的API将文件附加到Jira案例.我在Drupal 6( PHP v.5.0)中这样做.这是我的代码

$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,CURLOPT_HTTPHEADER,$this->get_jira_headers());
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,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);

问题是$result表示为false,$ch_error表示无法打开文件.这个错误是否与Drupal有关或与我如何向Jira发送请求有关?顺便说一句,如果我使用绝对路径,但是,像这样:

$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(在您看到的评论中,它已被修复)

如果您使用PHP 5.5.0,您可以使用:

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

您还可以在JIRA评论中看到这一点JIRA Comment

另外我想你想改变这个:

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

对此:

curl_setopt($ch,$header);

脚本宝典总结

以上是脚本宝典为你收集整理的php – 为Jira的api添加附件全部内容,希望文章能够帮你解决php – 为Jira的api添加附件所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。