最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于node使用multer進行文件的上傳與下載

 更新時間:2023年04月19日 10:51:41   作者:阿晨學前端  
這篇文章主要介紹了關(guān)于node使用multer進行文件的上傳與下載,Multer是一個Node.js中間件,用于處理表單數(shù)據(jù)中的multipart/form-data類型,需要的朋友可以參考下

首先了解下瀏覽器的自動下載:

使用Express靜態(tài)資源中間件的默認行為是在瀏覽器中展示靜態(tài)文件,而不是自動下載。

如果需要訪問靜態(tài)資源時自動下載,可以在HTTP響應(yīng)中設(shè)置Content-Disposition頭。Content-Disposition頭指示瀏覽器以何種方式處理要下載的文件。

常見的Content-Disposition值有"inline"和"attachment"。當Content-Disposition的值為"attachment"時,瀏覽器會自動下載文件,示例代碼如下:

app.use('/uploads', express.static(__dirname + '/uploads', {
  setHeaders: (res, path) => {
    res.setHeader('Content-Disposition', 'attachment');
  }
}));

再來了解下multer:

Multer是一個Node.js中間件,用于處理表單數(shù)據(jù)中的multipart/form-data類型。主要用于上傳文件,將上傳的文件保存到指定的目錄中。

Multer還提供了多個方法,這些方法可以根據(jù)不同的需求設(shè)置文件上傳的行為。比如:single()方法用于上傳單個文件,none()方法表示不接受任何文件,fields()方法用于上傳多個字段的文件,limits屬性用于限制上傳文件的大小等

接下來開始準備:

//html
<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>圖片上傳</title>
</head>
<body>
  <input type="file" id="fileInput">
  <br><br>
  <button onclick="upload()">上傳</button>
  
  <script>
    function upload() {
      const formData = new FormData()
      formData.append('image', document.getElementById('fileInput').files[0])
      
      fetch('http://127.0.0.1:3000/upload', {
        method: 'POST',
        body: formData
      })
      .then(response => response.text())
      .then(result => {
        console.log(result)
      })
    }
  </script>
</body>
</html>
//app.js
const express = require('express')
const app = express()
 
// 創(chuàng)建上傳路由
app.post('/upload', (req, res) => {
  res.send('hello world')
})
 
// 啟動服務(wù)器
app.listen(3000, () => {
  console.log('Server running on http://localhost:3000')
})

 安裝Multer,npm i Multer,根目錄新建一個uploads文件夾 然后對app.js進行配置:就實現(xiàn)了文件上傳

const express = require('express')
const multer = require('multer')
const path = require('path')
 
const app = express()
 
// diskStorage創(chuàng)建上傳存儲器 
const storage = multer.diskStorage({
  // 設(shè)置上傳文件存儲目錄
  destination: function (req, file, cb) {
    cb(null, './uploads/') 
  },
  //保存在 uploads 中的文件名
  filename: function (req, file, cb) {
    const extname = path.extname(file.originalname) // 獲取文件后綴名
    const filename = Date.now() + '-' + extname     // 時間戳+后綴名 生成唯一文件名
    cb(null, filename)
  }
})
 
//創(chuàng)建一個名為upload的文件上傳示例
const upload = multer({ storage: storage })
 
// 創(chuàng)建上傳路由
// upload.single('image') 處理單個文件上傳
app.post('/upload', upload.single('image'), (req, res) => {
  const file = req.file
  if (!file) {
    return res.status(400).send('請選擇要上傳的圖片')
  }
  res.send('上傳成功')
})
 
// 啟動服務(wù)器
app.listen(3000, () => {
  console.log('Server running on http://localhost:3000')
})

然后實現(xiàn)文件下載,也是對app.js進行配置:url+uploads+上傳的文件就可以實現(xiàn)下載

const express = require('express')
const multer = require('multer')
const path = require('path')
 
const app = express()
 
XXXXXXXXXXXXXXX 跟上面一樣的
 
app.use('/uploads', express.static(__dirname + '/uploads', {
  setHeaders: (res, path) => {
    // 當Content-Disposition的值為"attachment"時,瀏覽器會自動下載文件
    res.setHeader('Content-Disposition', 'attachment');
  }
}));
 
// 啟動服務(wù)器
app.listen(3000, () => {
  console.log('Server running on http://localhost:3000')
})

到此這篇關(guān)于關(guān)于node使用multer進行文件的上傳與下載的文章就介紹到這了,更多相關(guān)node使用multer文件上傳下載內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Node.js如何實現(xiàn)注冊郵箱激活功能 (常見)

    Node.js如何實現(xiàn)注冊郵箱激活功能 (常見)

    今天了解了node如何實現(xiàn)郵箱激活功能,這個功能非常常見,當我們注冊一個賬號時,肯定會有這步,下面看下如何實現(xiàn)這個功能
    2017-07-07
  • nodeJS(express4.x)+vue(vue-cli)構(gòu)建前后端分離實例(帶跨域)

    nodeJS(express4.x)+vue(vue-cli)構(gòu)建前后端分離實例(帶跨域)

    這篇文章主要介紹了nodeJS(express4.x)+vue(vue-cli)構(gòu)建前后端分離實例(帶跨域) ,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • 淺談NodeJS中require路徑問題

    淺談NodeJS中require路徑問題

    學習Nodejs也是出于對這個新產(chǎn)物的好奇,而且有兩個重要項目也需要他的支持,所以要好好學學這個新語種。在nodejs中,模塊大概可以分為核心模塊和文件模塊。核心模塊是被編譯成二進制代碼,引用的時候只需require表示符即可
    2015-05-05
  • node.JS二進制操作模塊buffer對象使用方法詳解

    node.JS二進制操作模塊buffer對象使用方法詳解

    在ES6引入TypedArray之前,JavaScript語言沒有讀取或操作二進制數(shù)據(jù)流的機制,本文為大家詳細介紹nodeJS中二進制操作模塊buffer對象使用方法詳解
    2020-02-02
  • 詳解npm和cnpm混用的坑

    詳解npm和cnpm混用的坑

    有沒有遇到過npm和cnpm一起用的時候出現(xiàn)奇奇怪怪的問題呢? 有沒有遇到過cnpm在支付寶小程序上面安裝包無效?本文就詳解一下npm和cnpm混用的坑,感興趣的可以了解下
    2021-07-07
  • 一文詳解如何使用node執(zhí)行js文件

    一文詳解如何使用node執(zhí)行js文件

    Node.js開發(fā)者過去通常將大多數(shù)可執(zhí)行命令發(fā)布為全局的軟件包,以使它們處于路徑中且可被立即地執(zhí)行,下面這篇文章主要給大家介紹了關(guān)于如何使用node執(zhí)行js文件的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • 詳解Node.js串行化流程控制

    詳解Node.js串行化流程控制

    這篇文章主要介紹了詳解Node.js串行化流程控制 ,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • 基于Alpine Linux構(gòu)建前端node-web鏡像步驟詳解

    基于Alpine Linux構(gòu)建前端node-web鏡像步驟詳解

    這篇文章主要為大家介紹了基于Alpine Linux構(gòu)建前端node-web鏡像步驟詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11
  • node指定內(nèi)存上限簡單代碼實例

    node指定內(nèi)存上限簡單代碼實例

    NodeJS啟動的應(yīng)用,內(nèi)存使用是有上限的,下面這篇文章主要給大家介紹了關(guān)于node指定內(nèi)存上限的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-11-11
  • 快速掌握Node.js環(huán)境的安裝與運行方法

    快速掌握Node.js環(huán)境的安裝與運行方法

    這篇文章主要介紹了Node.js環(huán)境的安裝與運行方法,Node是基于Google Chrome V8引擎的JavaScript解釋器,需要的朋友可以參考下
    2016-02-02

最新評論

苏尼特右旗| 呼和浩特市| 通化市| 芜湖市| 化隆| 商都县| 新干县| 育儿| 米易县| 渑池县| 西充县| 北票市| 攀枝花市| 建阳市| 额敏县| 古浪县| 三穗县| 合作市| 上思县| 乐安县| 新宾| 乐平市| 柳州市| 贵德县| 宜兴市| 信阳市| 墨竹工卡县| 广昌县| 郴州市| 云安县| 安顺市| 汕头市| 西峡县| 陆丰市| 错那县| 和顺县| 河间市| 渑池县| 南京市| 平塘县| 紫阳县|