2016-07-04 40 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

相關問題