相关疑难解决方法(0)

Node Busboy中止上传

我正在使用busboy,将我上传的文件写入缓冲区并对其执行一些验证(宽度,高度和文件大小).一旦发现上传有问题,我不能为我的生活弄清楚如何中止/停止流.

例如,如果我想要允许的最大文件大小为500kb,我会在上传时跟踪缓冲区的大小,如果大小超过500kb,我想中止.

这是我的代码的简化版本.

var self = this;
var busboy = new Busboy({
    headers: self.req.headers,
    limits: {
        files: 1
    }
});
busboy.on('file', function(fieldname, file, filename, encoding, mimetype) {

    file.fileRead = [];
    var size = 0;
    file.on('data', function(chunk) {

        size += chunk.length;

        /* DO VALIDATION HERE */
        if( size > 500000) {
            /*** ABORT HERE ***/
        }


        file.fileRead.push(chunk);
    });

    file.on('end', function() {
        var data = Buffer.concat(file.fileRead, size);
        // ... upload to S3
    });

    self.req.pipe(busboy);
});
Run Code Online (Sandbox Code Playgroud)

javascript node.js express busboy

11
推荐指数
2
解决办法
3312
查看次数

标签 统计

busboy ×1

express ×1

javascript ×1

node.js ×1