/

如何在 Node.js 中處理檔案上傳

如何在 Node.js 中處理檔案上傳

本文將教你如何使用 Node.js,特別是 Express,來處理檔案上傳。

首先,安裝 express-fileupload npm 模組:

1
npm install express-fileupload

然後將它加入至中介軟體:

1
2
3
4
5
import fileupload from 'express-fileupload'

// 或者

const fileupload = require('express-fileupload')

在你建立了 Express 應用程式之後,加入以下程式碼:

1
2
3
app.use(
fileupload(),
//...

這是必要的,否則伺服器將無法解析檔案上傳。

現在上傳的檔案將會在 req.files 中提供。如果你忘記加入這個中介軟體,req.files 會是 undefined

以下是處理檔案的最小程式碼範例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
app.post('/saveImage', (req, res) => {
const image = req.files.myFile
const path = __dirname + '/images/' + image.name

image.mv(path, (error) => {
if (error) {
console.error(error)
res.writeHead(500, {
'Content-Type': 'application/json'
})
res.end(JSON.stringify({ status: 'error', message: error }))
return
}

res.writeHead(200, {
'Content-Type': 'application/json'
})
res.end(JSON.stringify({ status: 'success', path: '/images/' + image.name }))
})
})

我們使用了上傳圖片的 mv 屬性,這是 express-fileupload 模組所提供的。我們將它移動至指定的 path,然後將處理結果(成功或錯誤)回傳給客戶端。

tags: [“Node.js”, “Express”, “file upload”]