在服务器上使用Express.js接收使用FormData发送的文件,可以按照以下步骤进行操作:
npm install multer
Multer是一个Node.js中间件,用于处理HTTP请求中的文件数据。
const express = require('express');
const multer = require('multer');
const path = require('path');
const app = express();
// 配置存储引擎和文件存储路径
const storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, 'uploads/') // 上传的文件将存储在uploads/目录下
},
filename: function (req, file, cb) {
cb(null, file.fieldname + '-' + Date.now() + path.extname(file.originalname))
}
});
// 创建Multer对象
const upload = multer({ storage: storage });
// 设置静态文件目录
app.use(express.static('public'));
// 处理上传的文件
app.post('/upload', upload.single('file'), (req, res) => {
if (req.file) {
res.json({
success: true,
message: '文件上传成功'
});
} else {
res.json({
success: false,
message: '文件上传失败'
});
}
});
以上代码将配置Multer的存储引擎为磁盘存储,并指定文件存储路径为uploads/
目录。然后,定义一个路由/upload
,使用upload.single('file')
中间件来处理上传的文件,其中'file'
是用于表示文件字段的键名。
<form action="/upload" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" value="上传">
</form>
请注意,表单的enctype
属性必须设置为multipart/form-data
,以支持文件上传。
以上步骤完成后,Express.js服务器就能够接收使用FormData发送的文件了。当用户选择文件并点击提交按钮时,表单数据将被发送到服务器的/upload
路由,Multer中间件将处理文件上传并将文件保存到uploads/
目录下。在回调函数中,可以根据需要对文件进行进一步处理或返回适当的响应。
领取专属 10元无门槛券
手把手带您无忧上云