sql >> データベース >  >> NoSQL >> MongoDB

base64イメージをNodeJsのファイルに変換します

    編集:このコードは私のために働いた。エラーは後で発生する可能性があります。

    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);
    

    あなたが言った場合

    console.log(req.body.profile_image) 
    

    ではなく
     console.log(typeof req.body.profile_image)
    

    印刷する前に、req.body.profile_imageにあるすべてのデータを文字列にキャストします。コメントするときに「typeof」を忘れた可能性がありますが、「typeof」を追加しなかった場合は、文字列が含まれていることを確認できません。 Bufferには複数のコンストラクターがあり、間違ったコンストラクターを使用している可能性があります。

    lolzを試してみてください:

    Buffer.from(String.fromCharCode.apply(null, new Uint16Array(req.body.profile_image)), "base64")
    

    req.body.profile_imageには何が割り当てられますか?

    writeFileSyncの最初の引数は文字列であるため、型エラーの原因にはなりません。 req.body.profile_imageに何が含まれているのか具体的に教えてください。

    ちなみに、これはあなたの問題とは無関係だと思いますが、「new」キーワードを使用してバッファをインスタンス化することは、非推奨 。多分 Buffer.from(...) を使用します 解決策の方向にあなたを動かします。




    1. mongodbのパスワードフィールドを暗号化する

    2. MongoDBのmap-reduce結果の構造を変更するにはどうすればよいですか?

    3. 画像に関するheroku/awsへの移行を解析します

    4. $ Projectを使用して既存の文字列から新しいフィールドを作成するにはどうすればよいですか?