2016-10-12 3 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')),) 

I을 심지어 내 PHP 스크립트에 jpeg 파일을 가져 오기 위해 코드 줄을 추가하고 업로드하기 전에 jpeg (imagejpeg())로 다시 작성했습니다. 그래도 항목의 이미지 필드를 업데이트 할 때까지 동일한 오류가 발생합니다. API를 통해 업로드 된 모든 이미지가 옥텟 스트림으로 변환 된 것 같습니다. 이 문제를 어떻게 해결할 수 있습니까? Podio 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에서 두 번째 매개 변수에 파일 유형 확장자를 포함해야합니까? 함수의 "name"매개 변수로 itemID를 사용하고 있습니다. – Samson

+0

네, 맞습니다, 파일 이름은 파일 확장자도 있어야합니다. 나는 대답을 수정했습니다. 그것을 받아들이면 다른 사람들도 혜택을 볼 수 있습니다. –

답변

0

시도하고 교체하십시오 :

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

같은과 함께 다음과 같이

PHP 코드는

$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

관련 문제