图片上传过早结束nodejs

Image Upload ending prematurely nodejs

使用 node.js,我决定是时候处理文件上传了。看看我的选择,我觉得用 socketio 上传对我来说是最好的选择。这当然会降低我的模块列表,因为无法使用 multer 或其他需要您加载另一个 http 请求的方式。我最终选择了 socket.io-stream 并且一切正常,直到我尝试上传更大的文件(200 KB 或更大),这不是很好,因为东西的平均大小将上传的大小为 50 KB 到 700 KB,最大为 1MB。在我看来,上传过早结束,不知道为什么。虽然我感觉是服务端的问题,但这里是客户端和服务端的问题。

客户:

var file = $("#map").prop('files')[0];
        var stream = ss.createStream();
        ss(m).emit('file', stream, {name: file.name});

服务器:

   ss(socket).on('file', function(stream, data) {
            var filename = path.basename(data.name);
            var way = '/images/maps/uploaded/';
            stream.pipe(fs.createWriteStream('public'+way+filename));
            stream.on('end', function() {
                socket.emit('fileDone', "<img src='" + way + filename + "' height='200px;' width='400px'/>");
            });
        }); 

正如您可能知道的主要功能是上传图片。客户端工作,所以我不担心。在服务器端,我会获取文件,然后将其保存在上传的目录中。 stream.on 用于回调以在完成后显示上传的图像。

当上传大部分 "big files"(超过 200KB)时,它只能像下图那样部分工作,并且往往大于 700KB 的上传后将显示大小 0。

这不是问题的完美解决方案,而是更多的变通方法。使用 socket.io-steam,我遇到了这个问题,但切换到 socketio-file-upload 解决了我的问题。仍然不知道为什么第一种方法不起作用。