nodejs Multer中間件


Multer是一個Node.js中間件,用於處理 multipart/form-data 類型的表單數據,主要用於文件上傳,注意:Multer中間件不會處理任何非 multipart/form-data 類型的表單數據。
Multer會自動添加一個body對象及file或files對象到 express框架的request 對象,fifile或fifiles對象包含表單上傳的文件信息。
通過表單上傳文件時需要注意的是:
(1)單的提交方式只能是POST
(2)須設置表單的 enctype="multipart/form" 屬性
 
1 安裝:
npm install --save multer
 
2.用法:
var multer = require(‘multer‘); var upload = multer({...});
 
3.multer配置:
//1.進行Multer的自定義配置
var storage = multer.diskStorage({
//設置文件上傳的位置,cb(callback簡寫)
destination: function (req, file, cb) {
//上傳到path變量所指定的位置
cb(null, path);
},
//設置上傳文件名稱的操作
filename: function (req, file, cb) {
//對於文件名進行相關的操作
//獲取原始文件的擴展名
var extension = file.originalname.substr(file.originalname.lastIndexOf(‘.‘)+1).toLowerCase();
//生成新的文件名
var filename = uuid.v1() + ‘.‘ + extension;
cb(null, filename);
}
});
//2.使用自定義配置
var upload = multer({ storage: storage });
 
 
4.請求參數
(1)single(fifieldname)
接收以fifieldname命名的文件上傳,該文件的信息存儲在 req.file 內,如:
app.post(‘/single‘,upload.single(‘avater‘), (req, res) => {
  res.send({ message: ‘OK‘ });
});
// single它是Multer對象的請求參數名稱,avater指表單中input type="file"的name的屬性值

 (2)array(fieldname,[maxCount])

接收以fieldname命名的上傳文件數組,可通過maxCount參數限制上傳文件的最大數量,這些文件的信息存儲在 req.files 內,如:
app.post(‘/multiple‘,upload.array(‘album‘), (req, res) => {
  res.send({ message: ‘OK‘ });
});

電腦刺綉綉花廠 http://www.szhdn.com 廣州品牌設計公司https://www.houdianzi.com

 5.req.fifile及req.fifiles

req.fifile返回單文件上傳時的文件相關信息對象
req.fifiles返回多文件上傳時的文件相關信息數組
信息有:
originalname,上傳文件的原始名稱
fifilename,文件上傳后的名稱
size,上傳文件的字節數(以字節為單位)
mimetype,上傳文件的MIME類型
 
 
6.UUID
UUID(Universally Unique Identififier),通用唯 一識別碼,其目的是為了讓分布式系統中的所有元素都能存在唯一標識信息 -- 文件名稱
格式 8-4-4-4-12的形態
安裝:npm install --save uuid
使用UUID:
//生成基於時間戳的 UUID uuid.v1(); //生成生成隨機數的 UUID uuid.v4();


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM