团队合作api,如何发送文件?

时间:2015-09-28 09:20:51

标签: php json file curl

我使用ZF1表单获取数据,使用cURL将它们发送到Teamwork API。 我尝试在任务列表上创建新任务,它没问题。问题是,当我尝试附加文件时,服务器响应是:

  

" MESSAGE":"未找到临时文件参考","状态":"错误"

我该怎么办?

请帮忙。

我的表格:

$this->setName('editForm')
     ->setAttrib('class', 'no-store')
     ->setAttrib('enctype', 'multipart/form-data"');

$this->createElement('file', 'pendingFileAttachments')

我只是从$ _POST' pendingFileAttachments'并尝试在json中编码并发送。可能需要获取文件而不仅仅是文件名,这是真的吗?

提前感谢帮助。

编辑:

所以,我发现我应该先将文件上传到Teamwork API,然后在创建任务POST cURL函数中使用上传的文件参考。

现在我已将文件上传到服务器的硬盘上,在我的php脚本中,我使用" realpath"确实存在并感觉良好。

比我使用这段代码:

$data["file"] = $filePath;

$channel = curl_init();
curl_setopt($channel, CURLOPT_URL, "$this->baseURL/pendingfiles.json");
curl_setopt($channel, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($channel, CURLOPT_POST, true);
curl_setopt($channel, CURLOPT_POSTFIELDS, $data);
curl_setopt($channel, CURLOPT_HTTPHEADER, array("Authorization: BASIC " . base64_encode($this->api_key . ":xxx"),
));
curl_setopt($channel, CURLOPT_SSL_VERIFYPEER, FALSE);
$response = curl_exec($channel);

得到答复:

  

" MESSAGE":"表单字段'文件'不包含有效文件","状态":"错误"

1 个答案:

答案 0 :(得分:0)

问题出在ZendFramework中。 以ZF1格式上传后获取文件路径的正确方法是:

WITH cte AS 
(
    SELECT 
        Accounts.AccountID, 
        Accounts.AccountName, 
        Results.ResultTime AS LastUpdated,
        Results.Balance, 
        Results.Equity, 
        Results.Margin,
        Results.Step, 
        Results.NextIncrease, 
        Results.NextLotSize,
        Results.Symbol,
        Results.Ask,
        Results.Bid, 
        ROW_NUMBER() OVER (partition by Results.AccountID ORDER BY Results.ResultTime DESC) AS RN 
    FROM dbo.Accounts INNER JOIN dbo.Results ON Accounts.AccountID = Results.AccountID
)
SELECT  AccountID, AccountName, LastUpdated, Balance, Equity, Margin, Step, NextIncrease, NextLotSize, Symbol, Ask, Bid
FROM cte WHERE RN = 1;

这就是全部。