91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

node怎么使用multer進行文件的上傳與下載

發布時間:2023-04-19 14:54:45 來源:億速云 閱讀:163 作者:iii 欄目:開發技術

這篇“node怎么使用multer進行文件的上傳與下載”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“node怎么使用multer進行文件的上傳與下載”文章吧。

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

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

如果需要訪問靜態資源時自動下載,可以在HTTP響應中設置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中間件,用于處理表單數據中的multipart/form-data類型。主要用于上傳文件,將上傳的文件保存到指定的目錄中。

Multer還提供了多個方法,這些方法可以根據不同的需求設置文件上傳的行為。比如: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()
 
// 創建上傳路由
app.post('/upload', (req, res) => {
  res.send('hello world')
})
 
// 啟動服務器
app.listen(3000, () => {
  console.log('Server running on http://localhost:3000')
})

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

const express = require('express')
const multer = require('multer')
const path = require('path')
 
const app = express()
 
// diskStorage創建上傳存儲器 
const storage = multer.diskStorage({
  // 設置上傳文件存儲目錄
  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)
  }
})
 
//創建一個名為upload的文件上傳示例
const upload = multer({ storage: storage })
 
// 創建上傳路由
// upload.single('image') 處理單個文件上傳
app.post('/upload', upload.single('image'), (req, res) => {
  const file = req.file
  if (!file) {
    return res.status(400).send('請選擇要上傳的圖片')
  }
  res.send('上傳成功')
})
 
// 啟動服務器
app.listen(3000, () => {
  console.log('Server running on http://localhost:3000')
})

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

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');
  }
}));
 
// 啟動服務器
app.listen(3000, () => {
  console.log('Server running on http://localhost:3000')
})

以上就是關于“node怎么使用multer進行文件的上傳與下載”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

黑龙江省| 兰溪市| 团风县| 襄樊市| 南召县| 繁峙县| 石门县| 镇沅| 周宁县| 道真| 大同市| 屯留县| 颍上县| 夏津县| 团风县| 北安市| 阳新县| 舒兰市| 墨竹工卡县| 松阳县| 温泉县| 桓台县| 西贡区| 金堂县| 渭源县| 莆田市| 兴业县| 博乐市| 南汇区| 巴彦县| 廉江市| 大悟县| 通城县| 浪卡子县| 东丽区| 宜良县| 闵行区| 将乐县| 抚松县| 阿拉善右旗| 洛隆县|