我使用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":"表单字段'文件'不包含有效文件","状态":"错误"
答案 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;
这就是全部。