【发布时间】:2015-03-20 16:55:31
【问题描述】:
我正在使用 Jira 的 API 将附件文件添加到案例中。我的问题是在我的代码附加文件之后,我去 JIRA 案例确认,我看到了两件事。首先,如果是图像,我可以看到图像的缩略图。但是,如果我单击它,我会收到一条错误消息“无法加载请求的内容。请重试。”其次,在缩略图下,不是显示文件名,而是显示文件最初上传的路径(id:c:/wamp/www/....),这是有原因的吗?这里是我的代码:
$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:
//c:/wamp/www/mySite/web/system/files/my_folder/DSC_0344_3.JPG
$data = array('file'=>"@". $attachmentPath, 'filename'=>'DSC_0344_3.JPG');
$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, $header);
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);
将文件添加到 Jira 后,当我登录 Jira 时,我可以看到缩略图,但文件下的标题类似于:c:/wamp/www/mySite/web/system/files/my_folder/DSC_0344_3 .JPG 而不是文件名。
谢谢
【问题讨论】:
-
我会说你的问题是这条线
$data = array('file'=>"@". $attachmentPath, 'filename'=>'DSC_0344_3.JPG');通过HTTP协议以某种方式发送错误的数据。你能控制你的 Jira 服务器吗? -
我刚刚注意到的另一件事。您在哪里使用
$header变量?也许它应该放在这里:curl_setopt($ch, CURLOPT_HTTPHEADER, $header);而不是this->get_jira_headers() -
抱歉,复制时打错了。在我的代码中,我使用属性。我已经更正了这个错字。
-
不,我无权访问 Jira 服务器。
-
就像我说的,附件被添加了。它只是无法查看或下载。我认为这是因为它的链接没有标题,而是一条漫长的路径。
标签: php curl jira jira-rest-api