J'ai le code vanilla pour obtenir le corps d'une requête, mais il crée une chaîne. Jusqu'à présent, cela a bien fonctionné pour la plupart des choses, mais maintenant je veux recevoir un blob.Comment puis-je recevoir un blob avec Vanilla Node.js?
Tout d'abord, le code que j'ai maintenant:
http.createServer(function (request, response) {
var body = '';
request.on('data', function (data) {
//this works great for UTF-8, but does not work for Blobs
body += data;
// Too much POST data, kill the connection!
// 1e6 === 1 * Math.pow(10, 6) === 1 * 1000000 ~~~ 1MB
if (body.length > 1e7) {
console.log("POSTED data too large!")
request.connection.destroy();
}
});
request.on('end', function() {
var pathname = "test.png";
fs.writeFileSync(pathname, body, {flag: "w"});
response.writeHead(200, {
'Content-Type': 'text/plain',
"Access-Control-Allow-Origin" : "*"
});
response.end("got it")
});
}).listen(8888);
côté client:
var imgNode; //assume is loaded <img>
var canvas = document.createElement("canvas");
canvas.width = imgNode.naturalWidth;
canvas.height = imgNode.naturalHeight;
var ctx = canvas.getContext("2d");
ctx.drawImage(imgNode, 0, 0);
canvas.toBlob(function(blob) {
Ajax.POST("localhost:8888", blob); //functional Ajax POST
});
Le problème ici est que ce code ne fonctionne que pour les chaînes. Quel est le code Vanilla qui fonctionnerait pour Blobs?
'ce code ne fonctionne que pour les chaînes' - que se passe-t-il lorsque vous essayez avec des blobs? quelle fin échoue? –
Il crée une chaîne à la place d'un objet blob. –
quel est le "ça" qui fait ça? –