使用Node.js的Express框架進行文件上傳

咱們先建立一個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

相關文章
相關標籤/搜索