PHP wordpress xmlrpc 远程上传图片 无效图片 wp.uploadFile

发布于 2021-11-26 10:45:11 字数 1574 浏览 899 评论 7

最近我的网站想使用wordpress xmlrpc 远程上传图片,看了好多wordpress xmlrpc 的API说明,也按照接口发送请求,但是图片最后保存下来是无效的图片

有没有朋友可以帮忙解决下!

我的代码:


require_once 'class-IXR.php';

$client = new IXR_Client("http://localhost/xmlrpc.php");
//上传图片
$filetext = @file_get_contents('http://misc.360buyimg.com/lib/img/e/logo-201305.png');
$data = array(
	'name' => '3a5ca0ce9c1824876e531d1e05992232.jpg',
	'type' => 'image/png',
	'bits' => base64_encode($filetext),
	'overwrite' => false,
);
$params = array(0,$user,$pwd,$data);
$client->query('metaWeblog.newMediaObject', $params);//metaWeblog.newMediaObject 与wp.uploadFile 是同样的效果
$uploadimg = $client->getResponse();
print_r($uploadimg);


输出的结果是


Array
(
    [id] => 1448
    [file] => 3a5ca0ce9c1824876e531d1e05992232.jpg
    [url] => http://localhost/wp-content/uploads/2013/09/3a5ca0ce9c1824876e531d1e05992232.jpg
    [type] => image/png
)
说明文件已经正常上传了。


但是打开图片是无效的图片

望朋友们一起帮忙解决。


如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

坏尐絯 2021-11-29 12:25:33

图片编码问题,换成下面的:

$bits = new IXR_Base64( file_get_contents($filesrc)); //图片内容需要转成base64, 

一人独醉 2021-11-29 11:13:05

看了下源码,class-wp-xmlrpc-server.php 中 mw_newMediaObject函数.

官网API上说是要base64加密,但是接受的函数里没有解密。改了之后就能上传了。

function mw_newMediaObject($args) {
		global $wpdb;

		$blog_ID     = (int) $args[0];
		$username  = $wpdb->escape($args[1]);
		$password   = $wpdb->escape($args[2]);
		$data        = $args[3];

		$name = sanitize_file_name( $data['name'] );
		$type = $data['type'];
		$bits = base64_decode($data['bits']);

或许我版本低了?3.5.2啊。在查查去。

冷清清 2021-11-29 11:04:29

你用记事本打开这个图片,看看是什么内容

凌乱心跳 2021-11-29 05:29:36

你用记事本打开这个图片,看看是什么内容

醉生梦死 2021-11-29 04:49:56

、怀疑你是有什么必要的操作没做, 去找别人的 demo

猫性小仙女 2021-11-28 23:33:40

没玩过

本王不退位尔等都是臣 2021-11-28 18:02:47

、怀疑你是有什么必要的操作没做, 去找别人的 demo

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文