Загрузка файла API Pivotal Tracker

У меня есть эта форма для загрузки файла. Я хочу, чтобы он был загружен как комментарий в Pivotal Tracker с помощью API. Что я напишу в коде? Я новичок в керле.

Редактировать: В Pivotal Tracker вы можете загружать файлы .jpg, .xls и т. Д. В комментарии, и он создает загружаемый значок / эскиз.

Комментарии док: https://www.pivotaltracker.com/help/api/rest/v5#projects_project_id_stories_story_id_comments_post

Файл вложения Док:
https://www.pivotaltracker.com/help/api/rest/v5#file_attachment_resource

upload.html:

<form action="pt.php" method="post" enctype="multipart/form-data">
<fieldset>
<input type="file" name="pt_xls" />
<input type="submit" name="upload" value="Upload" />
</fieldset>
</form>

pt.php:

$response = pivotalTracker("https://www.pivotaltracker.com/services/v5/projects/XXXXXXXX/stories/XXXXXXXX/comments");

$resArr = array();
$resArr = json_decode($response);

echo "<pre>"; print_r($resArr); echo "</pre>";

function pivotalTracker($url) {$pivotalAPIToken = 'XXXXXXXXXX';
$curlHeader = array("X-TrackerToken: ".$pivotalAPIToken, "Content-type: application/json");

$options = array(
CURLOPT_HTTPHEADER => $curlHeader,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => TRUE,
CURLOPT_POSTFIELDS => json_encode($data),
);

$ch = curl_init($url);
curl_setopt_array($ch, $options);

$content  = curl_exec($ch);

curl_close($ch);

return $content;
}

1

Решение

Возможно, это не правильный путь, но это работает!

file_in.php

    if(isset($_FILES['file'])){
$errors= array();
$theFile = $_FILES['file'];
$file_name = $_FILES['file']['name'];
$file_size = $_FILES['file']['size'];
$file_tmp = $_FILES['file']['tmp_name'];
$file_type = $_FILES['file']['type'];

move_uploaded_file($file_tmp, $_SERVER['DOCUMENT_ROOT']."/pt_uploads/".$file_name);

}

$target_file = $_SERVER['DOCUMENT_ROOT']."/pt_uploads/".$file_name;
$response = pivotalTracker("https://www.pivotaltracker.com/services/v5/projects/*ID*/uploads", $file_name, $target_file, $file_type);function pivotalTracker($url, $file_name, $target_file, $file_type) {

$pivotalAPIToken = 'XXXXXXXX';
$curlHeader = array("X-TrackerToken: ".$pivotalAPIToken, "Content-type: multipart/form-data", "Content-Disposition: form-data;'");$cfile = curl_file_create('../pt_uploads/'.$file_name,$file_type,$file_name);

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

$options = array(
CURLOPT_HTTPHEADER => $curlHeader,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_BINARYTRANSFER => true,
CURLOPT_POST => TRUE,
CURLOPT_POSTFIELDS => $data,
);

$ch = curl_init($url);
curl_setopt_array($ch, $options);

$content  = curl_exec($ch);

curl_close($ch);

unlink($target_file);

$resArr = array();
$resArr = json_decode($content);
$theId = $resArr->id;
$theName = $resArr->filename;header('Location: pt_file_comment.php?pt_file_id='.$theId.'&filename='.$theName);

}

pt_file_comment.php

$pt_file_id = $_GET['pt_file_id'];
$pt_file_name = $_GET['filename'];

$response = pivotalTracker("https://www.pivotaltracker.com/services/v5/projects/*ID*/stories/*ID*/comments", $pt_file_id, $pt_file_name);
$resArr = array();
$resArr = json_decode($response);

echo "<pre>"; print_r($resArr); echo "</pre>";

function pivotalTracker($url, $pt_file_id, $pt_file_name) {

$file_data[] = array('id' => $pt_file_id,);
$fileObject = (object) $file_data;$data = array(
'text'              =>    'file_attachments/'.$pt_file_id.'/'.$pt_file_name,
'file_attachments'  => $file_data,
);

$pivotalAPIToken = 'XXXX';
$curlHeader = array("X-TrackerToken: ".$pivotalAPIToken, "Content-type: application/json");

$options = array(
CURLOPT_HTTPHEADER => $curlHeader,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => TRUE,
CURLOPT_POSTFIELDS => json_encode($data),
);

$ch = curl_init($url);
curl_setopt_array($ch, $options);

$content  = curl_exec($ch);

curl_close($ch);
return $content;
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]