希望我能在这里得到一些帮助。我可以通过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
));
答案 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