[英]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.