You need to enable JavaScript to run this app. 使用express-fileupload上传文件失败提示请求不符合上传条件如何解决?
优惠活动
大模型
产品
解决方案
定价
更多

使用express-fileupload上传文件失败提示请求不符合上传条件如何解决?

问题根源与修复方案

1. 前端表单属性配置错误

enctype="multipart/form-data" 是表单标签<form>的专属属性,你错误将该属性写在了<input>标签上,导致浏览器提交文件时没有按二进制编码格式传输,express-fileupload识别不到符合要求的上传请求,才会输出Request is not eligible for file upload的日志。同时原代码中提交按钮没有闭合,也需同步修复。
修复后的admin.hbs代码:

<form method="POST" action="/admin/fileUpload" enctype="multipart/form-data">
  <h2>Upload File</h2>
  <input type="file" name="sampleFile">
  <button type="submit">上传</button>
</form>

2. 控制器代码语法错误

你写的sampleFile.mv()回调函数缺少闭合的),代码运行到此处会抛出语法错误。另外注意__dirname是当前控制器文件所在的目录,若你的upload文件夹存放在项目根目录,建议使用process.cwd()拼接路径,同时在res.render前加return避免后续代码继续执行。
修复后的taskController.js代码:

exports.fileUpload = (req, res) => {
  let sampleFile;
  let uploadPath;

  if (!req.files || Object.keys(req.files).length === 0) {
    return res.render('admin', { error: `No files were uploaded!` });
  }
  sampleFile = req.files.sampleFile;
  // 路径对应项目根目录下的upload文件夹,可根据实际存储位置调整
  uploadPath = process.cwd() + '/upload/' + sampleFile.name;
  sampleFile.mv(uploadPath, function (err) {
    if (err) throw err;
    res.render('admin', { alert: `File ${sampleFile.name} successfully uploaded!` });
  }); // 补全此处缺失的闭合括号
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 06:06:07