MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Chuyển đổi hình ảnh base64 thành tệp trong Node Js

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.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. dropDups true không hoạt động mongodb

  2. Tùy chọn cấu hình --bindip trong mongodb làm gì?

  3. oplog bật trên mongod độc lập không dành cho bản sao

  4. Đọc tệp BSON bằng Python?

  5. Tôi nên thêm tùy chọn --rest cho MongoDB ở đâu?