nodejs文件上傳樣例(express)

代碼

├── form.html
├── node_modules
├── package.json
├── package-lock.json
├── public
│   ├── doc
│   │   └── README.md
│   └── upload
│       └── 362131ec347930fab2c4dd9a708048d8
└── server.js

form.html

<html>
    <body>
        <form action="/upload" method="post" enctype="multipart/form-data">
            <h2>單圖上傳</h2>
            <input type="file" name="logo">
            <input type="submit" value="提交">
        </form>
    </body>
</html>

server.js

var fs = require('fs');
var express = require('express');
var multer  = require('multer');
var cookieParser = require('cookie-parser');
var util = require('util');

var app = express();

// 下載的文件保存在./public/upload/中
var upload = multer({ dest: 'public/upload/' });

// 把傳入的cookie填充至req.cookies中
app.use(cookieParser());

// http://127.0.0.1:8888/doc/README.md 可訪問public/doc下的README.md文件
app.use(express.static('public'));

// 單圖上傳
app.post('/upload', upload.single('logo'), function(req, res, next){
    var file = req.file;
    console.log('文件類型:%s', file.mimetype);
    console.log('原始文件名:%s', file.originalname);
    console.log('文件大小:%s', file.size);
    console.log('文件保存路徑:%s', file.path);
    res.send({ret_code: '0'});
});

app.get('/', function(req, res, next){
    // 打印傳入cookies
    console.log('Cookies: ' + util.inspect(req.cookies));
    res.sendFile(__dirname + '/' + 'form.html');
});

app.listen(8888);

流程

安裝依賴包

npm install multer --save
npm install cookie-parser --save

上傳文件後,服務器打印

Cookies: [Object: null prototype] {}
文件類型:image/png
原始文件名:2020-02-05 16-37-12屏幕截圖.png
文件大小:30143
文件保存路徑:public/upload/362131ec347930fab2c4dd9a708048d8

查看README.md

http://127.0.0.1:8888/doc/README.md

下載上傳的問題文件

http://127.0.0.1:8888/upload/362131ec347930fab2c4dd9a708048d8

很好的資料

  • https://www.runoob.com/nodejs/nodejs-express-framework.html
  • https://www.cnblogs.com/chyingp/p/express-multer-file-upload.html
  • http://www.expressjs.com.cn/starter/static-files.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章