首页 > 解决方案 > 尝试上传图片,但我的 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)
}

它返回未定义

标签: node.jsmulter

解决方案


服务器.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>

我试过你的代码。它工作正常。请试试这个。


推荐阅读