我发现了几个关于如何将附件上载到jira中的问题的例子,但是我还没有能够使它们中的任何一个工作。我在Jira社区帮助论坛上发布了这个问题,但已经过了一个多星期的0回复,希望这里的社区能够提供帮助。Jira附加文件使用PHP和CURL发布
这里是我当前的尝试:
$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是在同一个目录作为该文件。我已经卷曲安装在哪里,这是托管,可以创建JIRA罚款问题的Web服务器,只是不能似乎上传attahcments ...
当我运行这个页面会显示:
string(0) ""
没有附件上传也不用说了。任何想法我做错了什么?
编辑:添加赏金,这里有一些事情我已经尝试:
- 努力都NOCHECK和NOCHECK
- 努力都@ testing.txt和testing.txt
- 删除“内容型:多部分/格式数据”
- 完整路径,例如:
$data = array('file'=>"@C:\xampp\htdocs\Website\testing.txt ,'filename'=>'testing.txt');
- 试过这样太因为已知卷曲差错的:
$data = array('file'=>"@C:\xampp\htdocs\Website\testing.txt" ';filename=testing.txt');
以及上述各项的组合。无论我尝试什么,它都不起作用。也确保我是Jira的管理员级用户。我觉得我的代码应该工作......但显然不是。
你可以尝试将'file'重命名为'file_contents': '$ data = array('file_contents'=>“testing.txt”);'? – grundic
@grundic完成。输出改为:string(2)“[]”仍然没有文件上传。 – Lain
[这里是](https://confluence.atlassian.com/jirakb/how-to-attach-an-attachment-in-a-jira-issue-using-rest-api--699957734.html)标准的一个例子cUrl,但到目前为止我还没有发现任何区别。啊,'multipart/form-data'并不是Atlassian的例子。 – grundic