咱們先建立一個Express項目,要使用文件上傳的功能還須要下載multer模塊。html
npm install --save multer
下面咱們在public文件夾下建立upload.html,內容以下:express
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>文件上傳</title> 6 </head> 7 <body> 8 <h3>文件上傳:</h3> 9 選擇一個文件上傳: <br /> 10 <form action="/upload" method="post" enctype="multipart/form-data"> 11 <input type="file" name="content" /> 12 <br /> 13 <input type="submit" value="上傳文件" /> 14 </form> 15 </body> 16 </html>
而後再routes文件夾下建立upload.js,內容以下:npm
1 var fs = require('fs'); 2 var express = require('express'); 3 var multer = require('multer'); 4 5 var router = express.Router(); 6 var upload = multer({dest: 'upload_tmp/'}); 7 8 router.post('/', upload.any(), function(req, res, next) { 9 console.log(req.files[0]); // 上傳的文件信息 10 11 var des_file = "./upload/" + req.files[0].originalname; 12 fs.readFile( req.files[0].path, function (err, data) { 13 fs.writeFile(des_file, data, function (err) { 14 if( err ){ 15 console.log( err ); 16 }else{ 17 response = { 18 message:'File uploaded successfully', 19 filename:req.files[0].originalname 20 }; 21 console.log( response ); 22 res.end( JSON.stringify( response ) ); 23 } 24 }); 25 }); 26 }); 27 28 module.exports = router;
最後在app.js裏添加下面的代碼:app
var upload = require('./routes/upload'); app.use('/upload', upload);
執行,訪問下面的地址便可:post
http://localhost:3000/upload.htmlui