使用PHP SDK上传Active Collab文件

时间:2016-03-17 01:45:46

标签: php api activecollab

我刚开始使用this文档处理API,而且我在上传文件时遇到问题。我没有得到api调用上传文件的回应。我尝试过多种文件类型但没有成功。这是我的API调用:

$client = new \ActiveCollab\SDK\Client($token);
try {
    $response = $client->post('upload-files',[
        [
            'test-file.txt',
            'text\/plain'
        ]
    ]);

    echo $response->getBody();
} catch(AppException $e) {
    print $e->getMessage() . '<br><br>';
}

根据文档,我应该收到一封包含的回复 文件上传代码,但我没有收到任何回复,甚至没有验证错误。它也没有抛出异常。我对其他任何请求都没有任何问题,所以我不认为它是一个身份验证问题。任何人都可以帮我弄清楚我做错了什么?

2 个答案:

答案 0 :(得分:1)

为了上传文件,您应该传递一组文件路径或路径 - MIME类型对作为客户端post方法的第三个参数:

$response = $client->post('upload-files', [], ['/path/to/file.png']);
$response = $client->post('upload-files', [], ['/path/to/file.png' => 'image/png']);

仅当给定路径上的文件(本例中为/path/to/file.png)存在且可读时,此方法才有效。

答案 1 :(得分:1)

遇到同样的问题,以及我如何解决它:

来自SDK中的post方法:

if (is_array($file)) {
    list($path, $mime_type) = $file;
}
来自php.net的

In PHP 5, list() assigns the values starting with the right-most parameter.
In PHP 7, list() starts with the left-most parameter.

我使用的是PHP 5.6,所以我换了:

['/path/to/file.png' => 'image/png']

['image/png' => '/path/to/file.png']

现在按预期工作。