当前位置: 首页 > 知识库问答 >
问题:

我们如何通过PHP Curl使用JIRA rest attachments api附加多个图像?

曾瀚昂
2023-03-14

我可以通过Jira Rest Api附加一个图像,但当我试图通过它发送多个图像时,它失败了。这是我的单附件代码。需要帮助才能使多个附件正常工作。

参考:Jira附加文件,用于PHP和CURL

$cfile = new CURLFile($attachment['tmp_name'],$attachment['type'], $attachment['name']);
$data = array('file' => $cfile);

$url = "{$uriapi}"."issue/"."{$bugid}"."/attachments";
curl_setopt_array(
$ch,
array(
CURLOPT_URL=>$url,
CURLOPT_POST=>true,
CURLOPT_VERBOSE=>1,
CURLOPT_POSTFIELDS=>$data,
CURLOPT_INFILESIZE => 10,
CURLOPT_SSL_VERIFYHOST=> 0,
CURLOPT_SSL_VERIFYPEER=> 0,
CURLOPT_RETURNTRANSFER=>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";
return "Error Opening file. Failed to add Attachment";
}
elseif(isset($result)){
//return "Attachment added";
return "";
}
else{
return "Failed to add Attachment";
}
curl_close($ch);
}

共有1个答案

顾梓
2023-03-14

下面的代码对我来说很好,我希望它能有所帮助。

$username = "xxxxx";
$password = "xxxxx";

$url = "https://YourUrl/rest/api/latest/issue/YourKey/attachments";

$attachments = array("attachment1", "attachment2", "attachment3");
$curl = curl_init();
for ($i = 0; $i < count($attachments); $i++) {
$attachmentPath = "/your/attachment/path/$attachments[$i]";
$filename = array_pop(explode('/', $attachmentPath));

$cfile = new CURLFile($attachmentPath);
$cfile->setPostFilename($filename);

$data = array('file' => $cfile);

$headers = array(
    'Content-Type: multipart/form-data',
    'X-Atlassian-Token: nocheck'
);

curl_setopt($curl, CURLOPT_USERPWD, "$username:$password");
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($curl, CURLOPT_VERBOSE, 1);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);

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

if ($ch_error) {
    echo "cURL Error: $ch_error";
} else {
    echo $result;
}
}
curl_close($curl);
 类似资料:
  • 我正在努力在发送到gmail或其他电子邮件客户端之前附加一个以上的图像。我想让每个按钮都附加一个图像,例如,我想让用户在第一个按钮上附加身份证副本,然后是另一个按钮,支付证明副本(图像)。 我的java代码

  • “我们在git中甚至在Windows中都使用linux命令。我想知道它是如何让这些linux命令在Windows上运行的?”

  • 问题内容: 我在html表中有图像列表,并且需要在每个图像上重叠一个小图标。我们如何使用z索引和定位来做到这一点? 问题答案:

  • 在Spring Web中,我们可以使用注释@ExceptionHandler来处理控制器的服务器和客户端错误。 我曾尝试在web flux controller中使用此注释,但它仍然对我有效,但经过一些调查后,我在这里发现了这一点 Spring Web Reactive的情况更复杂。因为响应流是由不同的线程计算的,而不是执行控制器方法的线程,异常不会自动传播到控制器线程。这意味着@Exceptio

  • 问题内容: 这是我的代码,但这是针对单个文件的解决方案。 我可以像下面的单个文件一样共享多个文件和上载吗? 问题答案: 是的,但是您需要使用而不是。 这绝对可以简化,但我在其中保留了一些内容,以便您可以分解所需的每个步骤。 更新 :从API 24开始,共享文件URI将导致FileUriExposedException。为了解决这个问题,您可以将compileSdkVersion切换为23或更低版本

  • 我在两台不同的机器上有两种不同的卡桑德拉设置。我试图从一台机器上读取数据,使用Spark进行处理,然后将结果写入第二个设置。我使用的是spark-cassandra-connector-java_2.10。当我尝试使用Java函数时。writeBuilder,它允许我指定键空间和表名,但Cassandra主机是从Spark上下文获取的。除了Spark上下文中提到的方法外,还有其他方法可以将数据写入