Php XML-RPC wp.upload工作正常,但使图像损坏
我尝试了很多方法,使用XMLRPC将图像上传到wordpress,并通过文件名、路径和文件类型数组获得完美的响应。但若我在wordpress中查看图像,它会生成一个0字节的损坏图像文件 我已经做了一个类来操作所有的查询,比如创建帖子/编辑帖子/删除帖子等。所有的工作文件只是wp.uploadfile不能很好地工作 这是我的图像上传功能Php XML-RPC wp.upload工作正常,但使图像损坏,php,wordpress,Php,Wordpress,我尝试了很多方法,使用XMLRPC将图像上传到wordpress,并通过文件名、路径和文件类型数组获得完美的响应。但若我在wordpress中查看图像,它会生成一个0字节的损坏图像文件 我已经做了一个类来操作所有的查询,比如创建帖子/编辑帖子/删除帖子等。所有的工作文件只是wp.uploadfile不能很好地工作 这是我的图像上传功能 function upload_pic($url, $pic, $type='image/jpg') { $fs = filesize($url);
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);
}
我得到了如下回应
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”,但问题仍然是一样的。我找到了一个修复方法,现在它工作正常
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;
}
function upload\u pic($postid、$myFile、$name、$type='image/jpeg'))
{
$rpcurl=$this->XMLRPCURL;;
$username=$this->username;
$password=$this->password;
$file=文件获取内容($myFile);
$filetype=$type;
$filename=$name;
xmlrpc_set_type($file,'base64');/$filename,'type'=>$filetype,'bits'=>$file,'overwrite'=>false));
$request=xmlrpc_encode_请求('wp.uploadFile',$params);
$result=xmlrpc_decode($this->go($request,$rpcurl));
返回$result;
}
谢谢