2016-07-04 35 views
0

我尝试上传一个图像到一个带有节点的wordpress站点, 我得到了一个成功的响应,但是当我查看图像时,我看不到图像。node wordpress上传媒体成功但不好

节点代码:

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

 
module.exports = function(url) { 
 

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

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

 
\t \t \t wordpress.uploadFile(mediaData, function(error, id) { 
 
\t \t \t \t if (error) { 
 
\t \t \t \t \t return reject(error); 
 
\t \t \t \t } 
 
\t \t \t \t return resolve(id) 
 
\t \t \t }) 
 
\t \t }); 
 
\t \t \t 
 
\t }); 
 
\t 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' }

的响应是

回答

0

很简单,就是通过缓冲本身,而不是以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

相关问题