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

如何实现表单多文件上传?已设置multiple但仅收到单个文件

表单多文件上传仅收到单个文件的修复方案

问题

HTML文件输入框已设置multiple="multiple",可选择多个文件,但提交后邮箱仅收到单个文件。

修复步骤

1. 修正HTML文件输入框的name属性

将文件输入框的name="image"改为name="image[]",让PHP能以数组形式接收多个文件:

<div class="form-group">
  <label for="name"> Lisa manusesse fail (Max 25mb):</label>
  <input type="file" class="form-control" id="image" name="image[]" multiple="multiple" required>
</div>

说明:如果name不带[],PHP只会获取到最后一个选中的文件;添加[]后,PHP会将所有选中文件存入数组。

2. 更新PHP处理代码中的附件字段

修改attachFiles方法的参数,匹配前端的数组字段名:

// 原代码
// $pp->attachFiles(['image']);
// 修改为
$pp->attachFiles(['image[]']);

3. 确认JS代码无需调整

原JS中使用new FormData(this)可以正确收集所有选中的文件,保持原有逻辑即可:

var formdata = new FormData(this);
$.ajax({
  type: "POST",
  url: 'handler.php',
  data: formdata,
  success: after_form_submitted,
  dataType: 'json',
  processData: false,
  contentType: false,
  cache: false
});

原理说明

  • 前端通过name="image[]"标记该字段为多文件数组,告知服务器需要接收多个文件
  • PHP端的FormHandler库通过attachFiles(['image[]'])识别这个数组字段,将所有选中的文件添加为邮件附件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 16:43:56