您好,登錄后才能下訂單哦!
這篇“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是一個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') })
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') })
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進行文件的上傳與下載”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。