(基于与@danielepolencic的讨论)
使用Multiparty(npm install multiparty),这是Formidable的一个分支,如果我们从Express禁用bodyparser()中间件,则可以访问多部分数据(有关更多信息,请参见他们的注释)。与Formidable不同,除非您告知,否则Multiparty不会将文件流传输到磁盘。
app.post('/upload', function (req, res) {
var blobService = azure.createBlobService();
var form = new multiparty.Form();
form.on('part', function(part) {
if (part.filename) {
var size = part.byteCount - part.byteOffset;
var name = part.filename;
blobService.createBlockBlobFromStream('c', name, part, size, function(error) {
if (error) {
res.send({ Grrr: error });
}
});
} else {
form.handlePart(part);
}
});
form.parse(req);
res.send('OK');
});