简体   繁体   English

如何使用 socket.io-stream 上传文件?

[英]How to upload file using socket.io-stream?

This is my source code.这是我的源代码。

<server.js>

var app = require('./app.js');
var socketIO = require('socket.io');
var ss = require('socket.io-stream');
var path = require('path');
var fs = require('fs');

var server = app.listen(53322, function() {
    console.log('server is working at port 53322');
});

var io = socketIO.listen(server);

io.on('connection', function (socket) {
    ss(socket).on('file', function(stream, data) {
        console.log(data);
        var filename = path.basename(data.name);
        var filepath = path.join('./uploads', filename);
        var ws = fs.createWriteStream(filepath);
        stream.pipe(ws);
    });

});



<client script>

window.onload = function () {

    var socket = io.connect('http://localhost:53322');

    $('#media-form').submit( function(e) {
        var file = e.target[0].files[0];
        var filename = file.name;
        var filesize = file.size;
        var enc = e.target.encoding;
        var stream = ss.createStream();

        ss(socket).emit('file', stream, {
            data : file,
            size : filesize,
            name : filename,
            enc : enc}
        );

        var blobstream = ss.createBlobReadStream(filename);
        blobstream.pipe(stream);

        return false;
    });

};

为了使事情变得简单,我建议使用Dropzone.js之类的东西。它为您完成了所有艰苦的工作,并且很好用!

你可以使用这个包socketio-file-upload<\/code>它会为你处理一切https:\/\/www.npmjs.com\/package\/socketio-file-upload<\/a>

"

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

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