【问题标题】:node wordpress upload media success but not good节点wordpress上传媒体成功但不好
【发布时间】:2016-11-05 19:23:04
【问题描述】:

我尝试使用节点将图像上传到 wordpress 网站, 我得到了成功的响应,但是当我查看图像时,我看不到任何图像。

节点代码:

let wordpress = require("./wordpress");
let base64 = require('node-base64-image');
let imageType = require('image-type');

module.exports = function(url) {

	let promise = new Promise(function(resolve, reject) {

		base64.encode(url, {}, function(err, data) {
			if (err) {
				return reject(err);
			}
			let base64Image = data.toString('base64');
			let imageMime = imageType(data);
			    			
			mediaData = {
				type: imageMime.mime,
				name: 'tzook.jpg',
				overwrite: true,
				bits: base64Image
			}

			wordpress.uploadFile(mediaData, function(error, id) {
				if (error) {
					return reject(error);
				}
				return resolve(id)
			})
		});
			
	});
	return promise;
}

在最后一行我传递了 base64 编码的字符串,我知道它在我检查字符串本身时有效。

成功响应:

{ attachment_id: '561',
  date_created_gmt: 2016-07-04T03:29:01.000Z,
  parent: 0,
  link: 'http://www.mmayou.com/wp-content/uploads/2016/07/tzook-4.jpg',
  title: 'tzook.jpg',
  caption: '',
  description: '',
  metadata: '',
  type: 'image/jpeg',
  thumbnail: 'http://www.mmayou.com/wp-content/uploads/2016/07/tzook-4.jpg',
  id: '561',
  file: 'tzook.jpg',
  url: 'http://www.mmayou.com/wp-content/uploads/2016/07/tzook-4.jpg' }

回应是

【问题讨论】:

    标签: javascript node.js wordpress xml-rpc


    【解决方案1】:

    它只是传递缓冲区本身而不是 base64 字符串...

    代码:

    //not this....
    //let base64Image = data.toString('base64');
    let imageMime = imageType(data);
    
    mediaData = {
        type: imageMime.mime,
        name: 'tzook.jpg',
        overwrite: true,
        bits: data     // but simply the buffer itself
    }
    

    答案来自:github repo https://github.com/scottgonzalez/node-wordpress/issues/44

    【讨论】:

      猜你喜欢
      • 2019-01-21
      • 2015-08-21
      • 1970-01-01
      • 2012-12-26
      • 2012-07-25
      • 2014-08-11
      • 1970-01-01
      • 2017-08-15
      • 1970-01-01
      相关资源
      最近更新 更多