multer是express官方推薦的檔案上傳中介軟體,呼叫方法如下
1、在nodejs專案下的package.json中新增multer依賴,並執行npm install執行安裝
"multer" : "0.1.6"
2、引入該模組
var multer = require('multer');
3、配置相關引數
var multer_head = multer(})
4、使用
router.post('/setting', multer_head, function(req, res))
**如下
setting.ejs
<%- include header %><%- include footer %>
router檔案
var multer = require('multer');
var multer_head = multer(
});//上傳頭像
router.post('/setting', multer_head, function(req, res))
注意:
1、提交form表單檔案時,注意enctype="multipart/form-data"引數
2、如果上傳的影象沒有找到,可能是由於路徑問題
3、這種寫法是基於0.1.6版本的multer,官方已經更新到1.1.0版本,很多教材還是使用舊版本的案例作為講解,導致很雜亂,下面說一下新版本的寫法
基於1.1.0版本的multer用法
1、更新一下package.json中的multer版本號,然後npm install重新安裝一下
2、models資料夾中新建multerutil.js檔案,寫入如下**
var multer = require('multer');
var storage = multer.diskstorage(,
//重新命名
filename : function(req, file, cb)
})var multer_head = multer()
module.exports = multer_head;
3、router檔案
var multer_head = require('../models/multerutil.js');
//引數名要和表單欄位名一致
var upload = multer_head.single('head');
//上傳頭像
router.post('/setting', upload, function(req, res))
注意:上傳檔案的儲存路徑並不會自動建立,需要手動建立好,如果沒有該資料夾,會報錯
檔案上傳有以下方法:
multer.single('file')//適用於單檔案上傳
multer.array('file', num)//適用於多檔案上傳,num為最多上傳個數,上傳檔案的數量可以小於num
multer.fields(fields)//適用於混合上傳,請參考官方api
Express檔案上傳中介軟體Multer
前言 express預設並不處理http請求體中的資料,對於普通請求體 json 二進位制 字串 資料,可以使用body parser中介軟體。而檔案上傳 multipart form data請求 可以基於請求流處理,也可以使用formidable模組或multer中介軟體。multer中介軟體 ...
利用中介軟體Multer實現上傳功能
multer中介軟體實現對multipart form data格式的資料的操作 現在實現上傳的功能,上傳檔案完成後,背景顯示上傳的 首先在html檔案中新增檔案上傳標籤 建立upload.js檔案,定義ajax上傳檔案的方法。這裡運用了xhr2的formdata物件。formdata物件可以傳送二...
token的使用 multer中介軟體
在服務端不需要儲存使用者的登入記錄,全部發給客戶端有客戶端自己存 cookie,local 1 客戶端使用使用者名稱跟密碼請求登入 2 服務端收到請求,去驗證使用者名稱與密碼 3 驗證成功後,服務端會簽發乙個 token 加了密的字串 再把這個 token 傳送給客戶端 4 客戶端收到 token ...