2013-04-02 1 views
0

xml-rpc를 사용하여 이미지를 WordPress에 업로드하고 파일 이름, 경로 및 파일 형식 배열에 대한 완벽한 응답을 얻으려면 여러 가지 방법을 시도해 왔습니다. 아직도 만약 내가 wordpress에서 이미지를 보면 0 바이트의 손상된 이미지 파일을 만든다.XML-RPC wp.upload 잘 작동하지만 이미지가 손상됩니다.

나는 게시물 작성/게시물 수정/게시물 삭제 등 모든 작업을 수행하는 클래스를 만들었습니다. 모든 작업 파일은 wp.uploadfile mot가 잘 작동합니다.

내 이미지 업로드 기능입니다.

function upload_pic($url, $pic, $type='image/jpg') 
{ 
    $fs = filesize($url); 
    $file = fopen($url, 'rb'); 
    $filedata = fread($file, $fs); 
    fclose($file); 

    $content = array(
     'name' => $pic, 
     'type' => $type, 
     'bits' => new IXR_Base64($filedata), 
     'overwrite' => false 
    ); 

    $params = array(1,$this->UserName,$this->PassWord,$content,true); 
    return $this->send_request('wp.uploadFile',$params); 
} 

나는 다음 responce에게

Array 
    (
     [id] => 190 
     [file] => P_1364799102.jpg 
     [url] => http://localhost/wordpress/wp-content/uploads/2013/04/P_13647991025.jpg 
     [type] => image/jpg 
    ) 

응답을 얻고 것은 보이는 좋은 여전히 ​​이미지 파일을 0 바이트로 손상되었습니다.

도와주세요. 나는 또한 'metaWeblog.newMediaObject'시도했지만 여전히 문제가 동일합니다.

답변

0

나는 이제 제대로 작동하는 픽스를 발견했다.

function upload_pic($postid, $myFile, $name, $type='image/jpeg') 
{ 
    $rpcurl = $this->XMLRPCURL;; 
    $username = $this->UserName; 
    $password = $this->PassWord; 

    $file=file_get_contents($myFile); 
    $filetype = $type; 
    $filename = $name; 

    xmlrpc_set_type($file,'base64'); // <-- required! 
    $params = array($postid,$username,$password,array('name'=>$filename,'type'=>$filetype,'bits'=>$file,'overwrite'=>false)); 

    $request = xmlrpc_encode_request('wp.uploadFile',$params); 
    $result = xmlrpc_decode($this->go($request,$rpcurl)); 
    return $result; 
} 

감사

관련 문제