【发布时间】:2015-05-21 18:00:21
【问题描述】:
我正在尝试使用 node.js 在 ftp 上上传多个文件。我的上传成功开始,我在服务器位置看到上传的文件,但一段时间后未收到成功消息,在浏览器端我收到此错误“错误 324 (net::ERR_EMPTY_RESPONSE):但在服务器中我的文件仍然存在在 ftp 上上传。
这是该过程的上传日志:
uploaded Audio >>1 >>1572528
uploaded Audio >>1 >>1637949
uploaded Audio >>1 >>1703388
uploaded Audio >>1 >>1768865
uploaded Audio >>1 >>1834167
PUT /user/album/deliverAudio - - ms - -
// as soon as this line execute I get EMPTY_RESPONSE_ERROR in browser
uploaded Audio >>1 >>1899552
以下是该过程的部分代码:
sync.map(req.body.tracks, function(track, callback) {
var data = '';
var filename = '';
var readableAudioStream = fs.createReadStream(track.trackpath.track_path);
c.put(readableAudioStream,track.filename, function(err) {
if (err) {
return callback(err);
}
callback(null);
});
readableAudioStream.on('data', function(chunk) {
data += chunk;
console.log('uploaded Audio >>'+track.track_no+' >>'+data.length);
});
}, function(err, results) {
console.log('audio error');
console.log(err);
done(err);
});
【问题讨论】:
-
什么是
c.put()?如果它将数据从流上传到其他地方并在完成后调用其回调,那么您可能不应该在那里有data事件处理程序。 -
in c.put c 是我的 ftp 对象,它是 node-ftp,put 是它的方法。
-
即使在删除数据事件处理程序后,我也会遇到同样的错误。
标签: angularjs node.js express asyncfileupload