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

Bootstrap文件上传功能异常:PHP端$_FILES返回空数组

排查文件上传返回array(0) { }的原因

我来帮你一步步拆解这个问题,从最容易忽略的错误开始排查:

1. 文件输入框缺少name属性(最核心的问题)

你前端的<input type="file" class="form-control-file">没有设置name属性!PHP的$_FILES超级全局变量是依赖表单元素的name来识别上传文件的,没有这个标识,后端根本接收不到任何文件数据。

修改后的前端代码需要补上name属性,比如:

<div class="container">
  <div class="jumbotron mt-3" style="padding: 0.6em 1.6em;">
    <h4>Uploader</h4>
    <form enctype="multipart/form-data" action="/myurl/?action=upload" method="POST">
      <input type="file" class="form-control-file" name="upload_file"> <!-- 添加name属性 -->
      <input type="submit" class="btn btn-primary" name="Upload">
    </form>
  </div>
</div>

之后后端用var_dump($_FILES['upload_file']);就能看到上传的文件数据了。

2. 确认表单的enctype属性有效性

你已经正确设置了enctype="multipart/form-data",这是文件上传的必要条件——没有它浏览器不会对文件数据进行正确编码,后端自然收不到文件。这条你的代码没问题,可以直接排除。

3. 检查PHP配置的上传限制

如果补了name属性还是不行,要检查php.ini里的相关配置:

  • file_uploads:必须设为On,否则PHP直接禁用了文件上传功能
  • upload_max_filesize:如果上传的文件大小超过这个值,会导致$_FILES为空
  • post_max_size:这个值必须大于upload_max_filesize,因为POST请求的总数据量(包括文件)不能超过它

可以在PHP代码里添加phpinfo();来查看当前生效的配置信息。

4. 确认表单提交路径和方式

你的表单用了method="POST",这是正确的(文件上传不能用GET请求)。另外要确认action属性里的/myurl/?action=upload确实指向了处理上传的PHP文件,避免路径错误导致请求落到了其他未处理上传的页面。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 04:12:26