2015-12-22 37 views
3

我已經嘗試解碼節點js中的圖像文件與身體解析器中並上傳到服務器url。但是我沒有用base64圖像在uplaod和解析器圖像中取得成功。如何使用bodyparser解碼節點js中的圖像

if (req.method === 'POST') { 
    //base64_decode(req.body.profileImg, 'copy.jpeg'); 
    //console.log(req.body.profileImg); 
    var NewImageName = Math.random().toString(36).substring(7); 
    var imageBuffer = decodeBase64Image(req.body.profileImg); 
    fs.writeFile('../assets/images/seller/'+NewImageName+'.png', imageBuffer.data, function(err) { 

    }); 

回答

5

您可以嘗試使用此代碼解碼base64圖像。

function decodeBase64Image(dataString) { 
    var matches = dataString.match(/^data:([A-Za-z-+\/]+);base64,(.+)$/), 
    response = {}; 

    if (matches.length !== 3) { 
    return new Error('Invalid input string'); 
    } 

    response.type = matches[1]; 
    response.data = new Buffer(matches[2], 'base64'); 

    return response; 
} 


app.post('/UploadImages', function (req,res){ 
    if (req.method === 'POST') { 

     var NewImageName = Math.random().toString(36).substring(7); 
     var imageBuffer = decodeBase64Image(req.body.profileImg); 
     fs.writeFile('../assets/images/seller/'+NewImageName+'.png', imageBuffer.data, function(err) { 

     }); 
     res.json(200, {profileImgName: NewImageName }); 

    } 
}); 

只是讓你的base64在你的NodeJS功能編碼字符串,你可以將它發送給函數decodeBase64Image我創建上面,將解碼圖像,然後你可以把它上傳。

謝謝