1. 程式人生 > >express接收base64編碼資料和檔案儲存

express接收base64編碼資料和檔案儲存

圖片在瀏覽器的javascript中操作,只能是base64編碼的文字。

比如從html5 canvas儲存圖片,只能生成base64編碼的文字,通過toDataURL()方法。
生成的輸入類似這樣:
data:image/png;base64,iVBORw0KGgoAAAA……ggg==

其中,png;base64,後面的部分,就是圖片資料的base64編碼表示。
我們可以通過backbone的sync方式,將資料傳送到伺服器端,參見:backbone和express的整合。
然後,需要使用express將資料轉換為二進位制資料,並儲存到檔案,程式碼如下:

app.post(‘/items’, function (req, res) {
console.log(req.body.title);
var base64Data=req.body.imgData.replace(/^data:image\/png;base64,/,”");
var binaryData=new Buffer(base64Data,’base64′).toString(‘binary’);
require(‘fs’).writeFile(‘out.png’,binaryData,’binary’,function(err){
if(err){
console.log(err);
}
});
res.send(‘saved.’);
});