我有一個節點/快速應用程序處理文件上傳與multer。在我的本地機器上一切正常,但在服務器上,如果上傳的文件超過幾Mbs,則瀏覽器會因「連接重置」錯誤而停止。與multer文件上傳Node.js連接重置
這裏是上傳腳本的一個簡單的測試版本:
var express = require('express');
var multer = require('multer');
// Create server
var app = express();
// Start server
function startServer() {
var port = 8888;
server = app.listen(port, function() {
console.log('Node version:' + process.versions.node);
console.log('Express server listening on port %d in %s mode', port, app.settings.env);
});
}
var upload = multer({dest: './tmp/'});
var app = express()
app.post('/', upload.single('data'), function (req, res, next) {
console.log(req.file);
});
startServer();
而這裏的HTML頁面來測試上傳:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>Test Upload</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<p>Hello world! This is a test upload.</p>
<form method="post" action="http://192.168.1.234:8888" enctype="multipart/form-data">
<label>file</label><br>
<input type="file" name="data"><br>
<input type="submit" name="submit" value="Upload">
</form>
</body>
</html>
我在兩個不同的服務器進行測試 - 一個VPS和裸機 - 我最終在兩臺服務器上都出現了相同的錯誤。上傳開始,我可以在我的./tmp
目錄中看到該文件的一大塊,但它不會完成,並且不會在節點和系統日誌中發出任何錯誤。
從我的經驗來看,它可能是apache/nginx /其他服務器運行的超時配置,我會試着研究一下。 – NadavL
可能還沒有足夠的磁盤空間? –
@NadavL到目前爲止節點是前端服務器,沒有什麼代理服務器...... – Buzut