Mon application Express reçoit un PNG codé en base64 du navigateur (généré à partir du canevas avec toDataURL() ) et l'écrit dans un fichier. Mais le fichier n'est pas un fichier image valide, et l'utilitaire "file" l'identifie simplement comme "data".
var body = req.rawBody,
base64Data = body.replace(/^data:image\/png;base64,/,""),
binaryData = new Buffer(base64Data, 'base64').toString('binary');
require("fs").writeFile("out.png", binaryData, "binary", function(err) {
console.log(err); // writes out file without error, but it's not a valid image
});
1 votes
J'ai mis à jour la réponse, ce qui, je pense, est ce dont vous aviez besoin en premier lieu ;)
0 votes
Évidemment, ce n'est pas ce que vous avez demandé, mais (dans mon cas) j'ai réalisé que la meilleure approche était simplement de stocker la chaîne encodée entière dans ma base de données (vous pouvez toujours la charger en utilisant la commande
<img src="data:image/png;base64,..." />
). C'est juste une option à prendre en compte pour les autres personnes qui utilisent ce fil de discussion comme référence.