2017-07-14 48 views
0
var http = require('http'), 
url = require('url'), 
fs = require('fs'); 
var express = require('express') 
, app = module.exports = express(); 
var router=express.Router(); 
//var fs = require('fs'); 
// string generated by canvas.toDataURL() 
router.get('/', function(req, res, next){ 
var img = 
"Right_9660009901_20170707_172902_1023927555.jpg"; 
// strip off the data: url prefix to get just the base64-encoded bytes 
var fs = require("fs"); 
fs.writeFile("image.jpg", new Buffer(img, "base64"), function(err) {}); 
}); 

在上述代碼中base64未轉換爲正確的圖像並顯示圖像已損壞或格式不正確。這段代碼有什麼問題?base64未轉換圖像它顯示圖像可能已損壞或無法打開圖像

回答

0

您正試圖將img變量轉換爲base64編碼緩衝區,而不是您的實際圖像。您需要將圖像文件讀入緩衝區,然後寫入文件。

例如

router.get('/', function(req, res, next){ 
    fs.readFile(img, { encoding: 'base64'}, function (err, data) { 
    if (err) { 
     throw err; 
    } 

    fs.writeFile("image.jpg", data, function(err) { 
     if (err) { 
      throw err; 
     } 
     res.send("Successfully converted the image") 
    }); 
    }); 
});