我在上传大文件时遇到问题。我曾尝试上传较小的文件并且效果很好,但是当我尝试上传较大的文件(700mb 或更多)时,node.js 服务器给我一个错误:
Error: Request aborted at IncomingMessage.onReqAborted (/home/xxx/node_modules/express/node_modules/connect/node_modules/multiparty/index.js:131:17)
at IncomingMessage.EventEmitter.emit (events.js:92:17)
at abortIncoming (http.js:1911:11)
at Socket.serverSocketCloseListener (http.js:1923:5)
at Socket.EventEmitter.emit (events.js:117:20)
at TCP.close (net.js:465:12)
连阅读状态都达不到。
我用
- 谷歌浏览器
- 快速 3.0
我已经包含了
app.use(express.bodyParser({limit: '2048mb'}));
另外我想我应该提到这一点;出现上述错误后,文件再次开始上传并失败。同样,较小的文件没有问题。所以我的问题是如何使用这种方法有效地传输大文件,或者有更好的方法吗?谢谢。
最佳答案
下面的代码呢:
var formidable = require('formidable'),
http = require('http'),
util = require('util');
http.createServer(function(req, res) {
if (req.url == '/upload' && req.method.toLowerCase() == 'post') {
// parse a file upload
var form = new formidable.IncomingForm();
form.parse(req, function(err, fields, files) {
res.writeHead(200, {'content-type': 'text/plain'});
res.write('Received upload:\n\n');
res.end(util.inspect(files));
});
return;
}
// show a file upload form
res.writeHead(200, {'content-type': 'text/html'});
res.end(
'<form action="/upload" enctype="multipart/form-data" method="post">'+
'<input type="file" name="upload" multiple="multiple"><br>'+
'<input type="submit" value="Upload">'+
'</form>'
);
}).listen(80);
关于javascript - Node.js 1gb csv 文件上传 - 错误 : Request aborted,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22399309/