我试图使用express.js和socket.io将图像保存到具有node.js的指定目录,但它不起作用。使用nodejs,expressjs和socket.io保存图像
在客户端:
var reader = new FileReader();
function drop(e) {
e.stopPropagation();
e.preventDefault();
var dt = e.dataTransfer;
var files = dt.files;
jQuery.each(files, function(){
reader.onload = function(e) {
socket.emit('sendfile', e.target.result);
};
});
return false;
}
图像应通过拖曳上传拖放功能。
然后在服务器端:
io.sockets.on('connection', function (socket) {
[...]
socket.on('sendfile', function (data) {
var fs = require('fs');
app.use(express.bodyParser({ keepExtensions: true, uploadDir: '/uploaded' }));
io.sockets.emit('updatechat', socket.username, data); //test
});
我也曾尝试
socket.on('sendfile', function (data) {
var fs = require('fs');
fs.writeFile('/uploaded/test.png', data, "binary" , function (err) {
if (err) throw err;
console.log('It\'s saved!');
});
io.sockets.emit('updatechat', socket.username, data); //data test
});
但它不保存任何东西。 “数据测试”告诉我,数据已经到达服务器,所以我不认为问题来自客户端,但在服务器端,我不知道我在做什么错
我已经找了一个解决方案,因为两天以上,这是第一个,工作!谢谢! – RedDot 2013-02-10 00:00:26
很高兴看到该解决方案为您工作! – Ito 2013-02-10 07:11:21