2016-10-12 21 views
0

願っています。私はここで助けを得ることができます。私は、APIを介して画像ファイルをアップロードすることができるよ、と私は応答としてのfile_idを受けるが、私は私が手に返されたIDを使用してアイテムの画像フィールドを更新しようとするたび:Podio APIイメージアップロードアイテム

"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

このエラーの原因となるソースコードの例を教えてください。 –

+0

私はエラーを見ることができると思います。最初のPodioFile :: uploadでは、2番目のパラメータにファイルタイプ拡張子を含める必要がありますか?私はitemIDを関数の "name"パラメータとして使用しています。 – Samson

+0

はい、あなたは正しいです、ファイル名はファイルの拡張子を持つ必要があります、私は答えを変更しました。それを受け入れるようにしてください。他の人たちも同様にそれを享受することができます。 –

答えて

0

試してみて、交換してください:

$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

関連する問題