首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >枢轴跟踪API文件上传

枢轴跟踪API文件上传
EN

Stack Overflow用户
提问于 2017-03-08 15:19:03
回答 1查看 253关注 0票数 1

我有这张表格来上传一个文件。我希望它被上传作为一个评论,在关键跟踪器与API。我将在代码中写些什么?我对Curl很陌生。

编辑:关键跟踪器中的,您可以在评论中上传文件.jpg、.xls等,并创建一个可下载的图标/缩略图。

注释Doc:post

文件附件Doc:resource

upload.html:

代码语言:javascript
复制
<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:

代码语言:javascript
复制
$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;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-13 16:11:39

这可能不是正确的方法,但它是有效的!

file_in.php

代码语言:javascript
复制
    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

代码语言:javascript
复制
$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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42675137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档