You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于代码中files.photo.path与files.photo.type的含义及获取方法问询

问题解答

1. files.photo.path 和 files.photo.type 分别指什么?

  • files.photo.path:用户上传的图片文件在服务器临时存储的文件路径。文件上传后会被临时保存在这个路径下,通过它可以读取到文件的二进制内容。
  • files.photo.type:上传图片的MIME类型,比如image/jpeg、image/png,用来标识图片的具体格式。

2. 如何获取用户上传图片的type与path?

这种逻辑依赖文件上传中间件,以下是两种常见中间件的实现方式:

方式一:使用express-fileupload

  1. 安装并配置中间件:
const express = require('express');
const fileUpload = require('express-fileupload');
const app = express();

// 默认配置,上传的文件会存储在服务器临时目录
app.use(fileUpload());
  1. 在接口中获取文件信息:
app.post('/upload-product', (req, res) => {
  // 上传的图片挂载在req.files.photo上
  const uploadedPhoto = req.files.photo;
  
  // 获取临时存储路径
  const photoPath = uploadedPhoto.path;
  // 获取图片MIME类型
  const photoType = uploadedPhoto.type;
  
  // 后续可读取文件并写入MongoDB,和你代码中的逻辑一致
});

方式二:使用multer

注意multer中对应的属性是path和mimetype:

  1. 安装并配置中间件:
const express = require('express');
const multer = require('multer');
const app = express();

// 配置临时存储目录
const storage = multer.diskStorage({
  destination: function (req, file, cb) {
    cb(null, './temp-uploads/')
  }
});
const upload = multer({ storage: storage });
  1. 在接口中获取文件信息:
// 单文件上传,字段名为photo
app.post('/upload-product', upload.single('photo'), (req, res) => {
  const uploadedPhoto = req.file;
  
  // 获取临时路径
  const photoPath = uploadedPhoto.path;
  // 获取图片MIME类型
  const photoType = uploadedPhoto.mimetype;
});

补充说明

你代码中把图片二进制数据和MIME类型直接存在MongoDB的方式,适合小体积图片;如果是大图片,更建议将文件存储到云存储或服务器静态目录,仅在数据库中保存文件的访问URL和类型,这样能提升系统性能。

内容的提问来源于stack exchange,提问作者hacksrinja

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 16:15:41