在项目上上传Podio API图像

时间:2016-10-12 22:35:58

标签: php podio

希望我能在这里得到一些帮助。我可以通过API上传图像文件,我收到一个file_id作为响应,但每次我尝试使用返回的id更新项目中的图像字段时,我得到:

"File with mimetype application/octet-stream is not allowed, must match one of (MimeTypeMatcher('image', ('png', 'x-png', 'jpeg', 'pjpeg', 'gif', 'bmp', 'x-ms-bmp')),)

我甚至在我的PHP脚本中添加了一行代码来从文件中提取jpeg,在上传之前将其重写为jpeg以确定(imagejpeg())。不过,当我到达更新项目上的图像字段时,我得到了同样的错误。似乎通过API上传的所有图像都转换为八位字节流。我该如何解决这个问题? 我正在使用Podio PHP库。

PHP代码如下:

$fileName = "testUpload.jpeg";
imagejpeg(imagecreatefromstring(file_get_contents($fileName)),$fileName);
$goFile = PodioFile::upload($fileName,$itemID);
$fileID = $goFile->file_id;

PodioItem::update((int)$itemID, array(
        'fields' => array(
            "logo" => (int)$fileID,
        )
    ) , array(
        "hook" => 0
    ));

1 个答案:

答案 0 :(得分:1)

请尝试替换:

$goFile = PodioFile::upload($fileName,$itemID);

有类似的东西:

$goFile = PodioFile::upload('/path/to/example/file/example.jpg', 'example.jpg');
$fileID = $goFile->file_id;
PodioItem::update((int)$itemID, array(
    'fields' => array(
        "logo" => array((int)$fileID),
    )

https://developers.podio.com/examples/files#subsection_uploading中所述 然后使用$fileID,因为您已经使用过。是的,filename也应该包含文件扩展名,因此它不仅适用于123123123,而且适用于123123123.jpg