Chỉnh sửa:Mã này phù hợp với tôi. Có thể lỗi xảy ra sau.
var fs = require("fs");
var image = "+MZScHeJQ9Cz5dfxnEmIMHWMZyZYnYx8Rrhj0HbtfGUanv5w3UHUyADbiGsKJxeM1yV4uGwBS7cYlAec1w0AX6xg2A1O854UF8OS6PAP1MtzkeFnrNlD41U8XFeGrp1fn3jRMUs8sqS61umSS2rR2NDhppjZ4OvnOWBAq6X+sQNkhKkfZOdYsZOpz8fWIQb6wQ/GchVCgfZko4PMDg1DSumausG6o+2E6wKLLjKReUaHEQXKJV8h85XEKN4p/WEBvTHmmJ/IN178YJVgrGmfOScAuBPp+sggGA7/wC1kgbDiacbGABOcCLHVRpMuBQh5Xn4xqARF03pwkJT23LhxGLiSGp8mCVWDrzPf3iwp4C3nDSg2VUfNwgDvm6vrIiFJvp8ZHIdjoFx8BX0OH0+8TVii3GAKKc2kjz7dYqUCdsuMOm2hrr+h//Z";
var bitmap = new Buffer(image, 'base64');
fs.writeFileSync("images/example.jpg", bitmap);
Nếu bạn nói
console.log(req.body.profile_image)
hơn là
console.log(typeof req.body.profile_image)
Nó sẽ truyền dữ liệu từng có trong req.body.profile_image thành một chuỗi trước khi in. Có thể bạn đã quên 'typeof' khi nhận xét, nhưng nếu bạn không thêm 'typeof', bạn không thể chắc chắn rằng nó có chứa một chuỗi. Có nhiều hơn một hàm tạo đối với Bộ đệm và nó có thể đang sử dụng sai.
Đối với lolz, hãy thử:
Buffer.from(String.fromCharCode.apply(null, new Uint16Array(req.body.profile_image)), "base64")
Cái gì được gán cho req.body.profile_image?
Đối số đầu tiên của writeFileSync là một chuỗi, vì vậy nó không thể gây ra lỗi kiểu. Bạn có thể cụ thể hơn về những gì được chứa trong req.body.profile_image không?
Một lưu ý nhỏ là, mặc dù tôi nghĩ điều này không liên quan đến vấn đề của bạn, nhưng việc khởi tạo Bộ đệm với từ khóa 'mới' là không dùng nữa . Có thể bằng cách sử dụng Buffer.from (...) sẽ đưa bạn đi theo hướng của một giải pháp.