Express文件上傳之Multer

​Express文件上傳之Multer

Multer是一個nodejs中間件,用來處理http提交multipart/form-data,也就是文件上傳。它是在busboy的基礎上開發的。

在我看來,Multer是衆多上傳中間件裏面使用起來最優雅的,且能滿足大部分的上傳要求。API也相對來說較爲直觀和簡單。

安裝


1
npm install multer --save

基本用法


1
2
3
4
5
var express = require('express')
var multer = require('multer')
var app = express()
app.use(multer({ dest: './uploads/'}))
1
2
3
4
router.use(function(req,res,next){
console.log(req.files); //JSON Object
next();
});

從上面的代碼可以看到,multer作爲一箇中間件傳入了app.use,當有上傳請求到來時,express會攔截此請求並通過multer組件完成上傳操作。在multer初始化方法中傳入的是配置對象,我們可以在裏面配置我們自定義的參數,例如“文件大小限制”,“文件數量限制”等等。

不僅可以添加限制,還能給上傳註冊事件,例如:

1
2
3
4
5
6
7
8
9
10
11
//上傳開始時觸發
onFileUploadStart:function(file){
console.log("upload start");
}
//上傳結束時觸發
onFileUploadComplete:function(file){
console.log("upload complete");
}
......

我們在真正接受上傳的action中,通過req中的files獲得文件的基本信息,此信息爲JSON格式,常用的信息如下。

originalname - 文件原名
path - 上傳文件存放的路徑
size - 文件大小

更多詳細的屬性和配置請參見Multer的Github主頁。

Multer

文章作者:foreverpx
文章原文鏈接:Express文件上傳之Multer

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章