node.js - 尝试上传图片,但我的 multer 未定义 req.file
问题描述
我的代码非常简单,几乎遵循 Multer git 上的教程,但我的 req.file 仍然未定义:
这是我上传图片的html:
<form action="/product/upload_image" enctype="multipart/form-data" method="POST">
<input id="product_image" type="file" name="product_image" accept=".png,.jpg,.jpeg"/>
<input type="submit" value="Upload image"/>
</form>
我的路线:
var multer = require("multer")
var upload = multer({ dest: "uploads/" })
router.post("/product/upload_image", upload.single("product_image"), function(req, res) {
console.log(req.file)
}
它返回未定义
解决方案
服务器.js
const express = require('express');
const app = express()
const path = require('path')
const indexRouter = require('./index.js')
app.use('/', indexRouter)
const PORT = 5000;
app.listen(PORT, () => console.log('it started on 5000'))
index.js
const express = require('express');
const router = express.Router()
var multer = require("multer")
var upload = multer({ dest: "uploads/" })
router.get('/', (req, res) =>
res.sendFile('upload.html', {root: __dirname })
)
router.post("/product/upload_image", upload.single("product_image"), (req, res)=>
console.log(req.file)
)
module.exports = router
上传.html
<form action="/product/upload_image" enctype="multipart/form-data" method="POST">
<input id="product_image" type="file" name="product_image" accept=".png,.jpg,.jpeg"/>
<input type="submit" value="Upload image"/>
</form>
我试过你的代码。它工作正常。请试试这个。
推荐阅读
- javascript - 反应功能组件让变量没有改变
- java - 微服务无响应怎么办
- powershell - 如何导入模块以便它可用于调用 PowerShell 脚本?
- dependency-injection - NetCore如何在运行时更改接口的实现
- snowflake-cloud-data-platform - 如何计划 Snowflake 使用监控
- java - Gradle:在 Eclipse 类路径中可见的子项目的依赖关系
- .net-core - NLog 无法读取 .NET Core 2.2 控制台应用程序中的 app.config configSection
- macos - 如何在我的新 MacBook Pro(使用 Mac OS Catalina)上安装 openMP?
- python - 2个具有不同主键的数据框
- scala - KafkaTableSink:如何使用它?