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

FormData传递至PHP时出错,非文件参数无法通过$_FILES获取

问题原因&解决方案

嘿,我来帮你捋清楚这个问题哈~

核心问题出在PHP对FormData字段的解析规则上:

  • $_FILES数组专门用来存储通过FormData上传的文件类型数据,也就是你用formData.append('file', { uri: localUri, name: filename, type })添加的这类文件对象;
  • 而像formData.append('details', 'Chris')这种普通的文本/字符串字段,PHP会把它解析到$_POST(或者$_REQUEST)数组里,根本不会出现在$_FILES里,所以你用$_FILES['details']自然会报错。

正确的处理方式

你只需要把获取details字段的代码改成从$_POST里取就行:

// 获取上传的文件(这部分你原来的代码是对的)
$fileData = $_FILES['file'];
// 获取普通文本字段(改成$_POST)
$details = $_POST['details'];

// 正常返回响应
$this->response(['file' => $fileData, 'details' => $details], REST_Controller::HTTP_OK);

额外补充

如果你的REST框架有特殊的请求解析逻辑,也可以试试用$_REQUEST['details'](它会包含$_POST、$_GET和$_COOKIE的内容),不过优先用$_POST更准确,因为FormData的普通字段默认是通过POST方式提交的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:52:25