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

如何在PHP中获取AJAX提交的FormData里的文本字段与图片?

解决FormData提交后PHP获取文本和图片的问题

一、先修正前端FormData的创建与AJAX发送代码

你当前的FormData创建代码有误,正确写法是传入表单DOM元素而非字符串"form"。用jQuery实现的正确代码如下:

// 获取表单DOM节点(假设表单id为"myForm",也可直接用$('form')[0]匹配第一个表单)
var formElement = $('#myForm')[0];
// 基于表单创建FormData对象
var formData = new FormData(formElement);

// 发送AJAX请求
$.ajax({
    url: '你的PHP接口地址',
    type: 'POST',
    data: formData,
    // 必须设置这两个参数,否则FormData无法正确传递
    processData: false,
    contentType: false,
    success: function(res) {
        console.log(res);
    }
});

二、PHP中获取文本字段与图片

FormData提交后,文本字段数据会存入$_POST数组,上传的图片会存入$_FILES数组,无需通过$_POST['formData']获取。

1. 获取文本字段

假设表单内文本字段的name属性为user_name,直接通过$_POST取值:

$userName = $_POST['user_name'];

2. 获取上传的图片

假设表单内文件输入框的name属性为user_avatar,通过$_FILES处理:

// 获取图片的基础信息
$imgName = $_FILES['user_avatar']['name'];
$imgTmpPath = $_FILES['user_avatar']['tmp_name'];
$imgError = $_FILES['user_avatar']['error'];

// 验证并保存图片示例
if ($imgError === UPLOAD_ERR_OK) {
    // 定义保存路径,需确保uploads目录存在且有写入权限
    $saveDir = './uploads/';
    if (!is_dir($saveDir)) mkdir($saveDir, 0755, true);
    $savePath = $saveDir . $imgName;
    // 将临时文件移动到目标路径
    move_uploaded_file($imgTmpPath, $savePath);
    echo "图片上传成功";
} else {
    echo "图片上传失败,错误码:" . $imgError;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 14:15:44