国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

node文件上傳功能簡易實現代碼

2024-05-06 15:15:47
字體:
來源:轉載
供稿:網友

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

1. 開始

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

npm install multer --save

這里簡單說一下,因為文件上傳是用 post 方法提交數據,所以上傳的單文件或者多文件會作為一個 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 值根據配置生成,用于實現相關邏輯

2. 實現

實現分兩部分,前端和后端

前端

前端就是普通的寫法,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.jsvar 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方法相當于創建一個磁盤存儲引擎,配置文件上傳路徑,文件名等,可控性更高。

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表示接收最大數量

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 蓬安县| 石城县| 崇仁县| 平潭县| 金乡县| 德惠市| 丰宁| 广宁县| 塔河县| 施秉县| 桃园市| 罗城| 中山市| 碌曲县| 闽清县| 克拉玛依市| 平阴县| 镇宁| 台山市| 土默特右旗| 张家口市| 伊吾县| 道孚县| 繁昌县| 宁波市| 祥云县| 桃园县| 观塘区| 花莲市| 五大连池市| 东兴市| 荔浦县| 铅山县| 高碑店市| 台中市| 宁海县| 永济市| 靖江市| 姚安县| 留坝县| 拉萨市|