node文件上傳功能簡易實現(xiàn)代碼

找了不少文件上傳的相關模塊,最后選擇了比較常用,并且是express推薦使用的 multer 來實現(xiàn)文件上傳,附上 GitHub 地址

10年積累的成都網(wǎng)站設計、成都網(wǎng)站制作經(jīng)驗,可以快速應對客戶對網(wǎng)站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡服務。我雖然不認識你,你也不認識我。但先網(wǎng)站設計后付款的網(wǎng)站建設流程,更有會昌免費網(wǎng)站建設讓你可以放心的選擇與我們合作。

1. 開始

開始第一步,自然就是安裝模塊,不多說

npm install multer --save

這里簡單說一下,因為文件上傳是用 post 方法提交數(shù)據(jù),所以上傳的單文件或者多文件會作為一個 body 體添加到請求對象中,我們可以通過 req.file 或者 req.files 查看上傳后文件的相關信息。

以單文件上傳為例,req.file 返回一個對象:

{
   "fieldname":"avatar",  #前端上傳文件input的name
   "originalname":"Wx.php",  #本地文件名
   "encoding":"7bit",  #文件編碼類型
   "mimetype":"text/php",  #文件類型
   "destination":"uploads/",  #上傳根目錄
   "filename":"1497286037422Wx.php",  #上傳后文件名
   "path":"uploads/1497286037422Wx.php",  #文件路徑
   "size":18174  #文件大小
}

該對象的 key 值是固定的,velue 值根據(jù)配置生成,用于實現(xiàn)相關邏輯

2. 實現(xiàn)

實現(xiàn)分兩部分,前端和后端

前端

前端就是普通的寫法,form 表單提交

<form action="/test/upload" method="post" enctype="multipart/form-data">
  <input type="file" name="avatar">
  <input type="submit" name="提交">
</form>

切記,enctype="multipart/form-data" 這個屬性一定要加上,否則后臺接收不到文件。

后端

首先我們新建配置文件,upload.js

// upload.js

var multer = require('multer');  # 引入模塊

var storage = multer.diskStorage({
  destination: function (req, file, cb) {
    cb(null, 'uploads/')
  },
  filename: function (req, file, cb) {
    cb(null, Date.now()+file.originalname)
  }
})

var upload = multer({ storage: storage })

module.exports = upload;

diskStorage方法相當于創(chuàng)建一個磁盤存儲引擎,配置文件上傳路徑,文件名等,可控性更高。

destination  # 設置文件上傳路徑
filename    # 重命名文件

然后新建路由接收文件,file.js

// file.js 

var express = require('express');
var router = express.Router();

// 引入配置文件
var upload = require('../config/upload');

router.post('/upload', upload.single('avatar'), function(req, res, next) {
  res.send(req.file);
});

module.exports = router;

file.js 中 upload.single() 方法表示接受單文件,常用的有

upload.single(fname);  // 接收單文件
upload.array(fname[, maxCount])  //接收多文件,maxCount表示接收最大數(shù)量

fname 是前端 <input type="file" name="fname"> 的 name 值

基本的上傳文件方法就這些了,當然還有很多的配置參數(shù)之類的設置,要參考 GitHub 說明,地址在開頭,需要者自行查閱

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。

網(wǎng)頁題目:node文件上傳功能簡易實現(xiàn)代碼
網(wǎng)頁URL:http://muchs.cn/article32/jsogpc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、響應式網(wǎng)站定制開發(fā)、微信小程序、建站公司、網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設網(wǎng)站維護公司