1
我想使用快遞做一些文件上傳,但我在請求數據事件上有問題。 即使我在其上放置了一些控制檯日誌記錄測試,數據事件也不起作用。與nodeJS快速請求數據事件不起作用
這裏是我的服務器代碼:
var express = require('express');
var fs = require('fs');
var app = express();
//parser
app.use(express.bodyParser());
//form
app.get('/', function (req, res){
res.sendfile(__dirname + "/upload.html");
});
//post
app.post('/', function(req, res){
var imageName = req.files.image.name;
//error
if(!imageName){
console.log("Error");
res.redirect("/");
res.end();
} else {
var file = fs.createWriteStream(__dirname + "/uploads/" + imageName);
var fileSize = req.headers['content-length'];
var uploadedSize = 0;
req.on('data', function (chunk) {
var bufferStore = file.write(chunk);
if(bufferStore == false)
req.pause();
uploadedSize += chunk.length;
uploadProgress = (uploadedSize/fileSize) * 100;
console.log(Math.round(uploadProgress) + "%" + " uploaded\n");
});
file.on('drain', function() {
req.resume();
});
req.on('end', function() {
console.log('Upload done!');
res.end();
});
}
});
app.listen(5000);
這是我的客戶端代碼:
<!DOCTYPE HTML>
<html>
<body>
<form method='post' enctype='multipart/form-data'>
<input type='file' name='image'/>
<input type='submit' /></form>
</body>
</html>
完美無瑕地工作,但我不能將它用作流?我試圖在上傳過程中顯示進度,還有另一種方法可以在沒有流式傳輸的情況下進行嗎? –
你可以試試這個:http://new-bamboo.co.uk/blog/2012/01/10/ridiculously-simple-ajax-uploads-with-formdata –
謝謝你,只是設法解決我的問題=) –