繁体   English   中英

如何仅使用socket.io和multer使用套接字发送图像以保存在我的NodeJS后端中

[英]How can I send an image using sockets to save in my NodeJS backend using just socket.io and multer

我有一个应用程序,用户可以在其中上传一些信息和一些图片,至于使用socket.io可以轻松完成信息,但是我在图片方面遇到了一些麻烦。 我知道有类似这样的第三方库,但是对我来说,如果我只是使用普通的POST请求,那么对于某些简单的事情来说确实显得过多。 (当然,如果我错了,我很乐意使用该库,但只是想知道)

所以我如何在我的服务器端进行设置

// Socket IO Stuff
io.on("connection", function(socket){
    var upload = multer({
        dest: path.join(__dirname, '/public')
    });
    console.log("Socket has connected");
    socket.on("disconnect", function(){
        console.log("Socket has disconnected");
    });
    socket.on("component-submit", function(values){
        var tempValues = values;
        upload.single(tempValues.file);
    });
});

在我的客户端HTML上,我上传了一个简单的文件

在我的客户端JS上我有这样的代码

$("#component-submit").click(function(){
values = {
  componentName: $("#component-name").text(),
  textValue: $("#text-area").val(),
  file: $('#file').prop('files')[0]
}
socket.emit("component-submit", values);
})

在后端,我确实得到了这个对象,并且文件值中有一些东西,但是什么也没有保存。 宾语

我不能建议方法tcp或websocket不是文件上传的正确方法。 特别是大文件。 尝试http发布方法。 但是,如果必须使用这种方式,backendresponse.file.toString('binary'); 有了这个你的缓冲区转换为二进制。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM