如何在没有Express的情况下在NodeJS中上传文件

时间:2017-10-31 12:21:55

标签: node.js socket.io

我尝试从表单中提取文件并将其保存到任何文件夹中的磁盘上。我想通过套接字来做,但我不知道如何处理它。有人能帮助我吗?

这是我的代码:

main.js

var http = require('http');
var fs = require('fs');
var io = require('socket.io');
var path = require('path');

var server = http.createServer(function (req, res) {
    fs.readFile(__dirname + '/index.html', function (err, data) {
        if (err) {
            res.writeHead(200, {'Content-Type': 'text/html'});
            res.write("Not Found");
            res.end();
        } else {
            res.write(data, 'utf8');
            res.end();
        }
    });
}).listen(8000);

var listener = io.listen(server);

listener.sockets.on('connection', function (socket) {

    console.log("Connected");
    socket.on('disconnect', function () {
        console.log("Disconnect");
    });

    socket.on('form.message', function (data) {
        // here to handle the file ??
        socket.emit('new.message', {msg: data});
    });
});

index.html(客户端)

<script>

        $(function () {
            var socket = io.connect();

            var $messageForm = $('#messageForm');
            var $file = $('#file');
            var $outputFile = $('#outputFile');
            var obj = {
                file: $file.val(),
            };
            e.preventDefault();
            console.log(obj);
            socket.emit('form.message', obj);
            $file.val('');
            socket.on('new.message', function (data) {
                $outputFile.append('<div class="well">' + data.msg.file + '</div>');
            });
        });

    </script>

0 个答案:

没有答案