Req.file 在尝试使用 multer 和 cloudinary 上传图片时返回 [object, object]

Posted

技术标签:

【中文标题】Req.file 在尝试使用 multer 和 cloudinary 上传图片时返回 [object, object]【英文标题】:Req.file returns [object, object] when trying to upload picture using multer and cloudinary 【发布时间】:2020-04-15 20:26:14 【问题描述】:

我正在尝试使用 multer 和 cloudinary 从表单中保存图像,但在 request.file 和 request.body 中返回的唯一内容是 [object, object]

我的 app.js 文件

const multer = require("multer");
const cloudinary = require("cloudinary");
const cloudinaryStorage = require("multer-storage-cloudinary");

cloudinary.config(
    cloud_name: process.env.CLOUD_NAME,
    api_key: process.env.API_KEY,
    api_secret: process.env.API_SECRET 
);
const storage = cloudinaryStorage(
    cloudinary: cloudinary,
    folder: "demo",
    allowedFormats: ["jpg", "png"],
    transformation: [ width: 500, height: 500, crop: "limit" ]
);
const parser = multer( storage: storage );

app.post("/", parser.single("image"), (req, res)=>
  console.log(req.file) // <--- this returns [object, object]
 
  

html表单

<form action="/" method="post" encType="multipart/form-data">
  <input type="file" name="image" />
</form>

【问题讨论】:

请发布您的&lt;form&gt;的渲染HTML。 您是否使用调试器准确检查过req.file 是什么?它似乎是一组已发布的文件。 【参考方案1】:

您的表单没有文件上传器doohicky。将输入的类型更改为file 而不是text,然后尝试。

此外,当您想通过console.log 检查对象时,您应该这样做:

console.log( JSON.stringify( theObject ) );

【讨论】:

我在提交问题时不小心把它设置为 type="text",在我的文档中输入的是文件类型。

以上是关于Req.file 在尝试使用 multer 和 cloudinary 上传图片时返回 [object, object]的主要内容,如果未能解决你的问题,请参考以下文章

multer - req.file 始终未定义

Express multer 在 req.file 上返回 undefined

节点 js multer 文件上传不起作用。 req.file 和 req.files 始终未定义

尽管创建了文件对象,但 Multer req.file 始终未定义

req.file.stream 未定义

nodejs multer文件上传,路径包含双斜杠