You need to enable JavaScript to run this app. React结合Laravel8 Sanctum使用react-dropzone上传文件后端接收为空求助
优惠活动
大模型
产品
解决方案
定价
更多

React结合Laravel8 Sanctum使用react-dropzone上传文件后端接收为空求助

问题原因及解决方案

  1. 多文件上传FormData键名错误
    你现在追加文件用的键名是images,要接收多文件数组的话,需要把键名改为images[],否则每次追加文件都会覆盖上一个,Laravel也无法正确识别为多文件集合,修改代码如下:
    files.map((file) => data.append("images[]", file));
    
  2. Laravel接收文件的方法错误
    上传的文件属于二进制请求内容,不会包含在$request->all()的返回结果中,你需要用Laravel提供的文件接收方法来获取:
    // 先判断是否有上传文件
    if ($request->hasFile('images')) {
        // 获取全部上传的图片文件
        $images = $request->file('images');
        // 单文件处理可以用 $request->file('images')[0]
    }
    
  3. 检查请求头配置
    如果你在headers里手动指定了Content-Type: multipart/form-data,请删掉这个配置。axios发送FormData时会自动生成带boundary标识的Content-Type,手动指定反而会导致服务器无法正确解析文件内容。
  4. 额外排查项
    • 确认你的apiClient配置里开启了withCredentials: true,否则Sanctum的CSRF校验和认证会失效,导致请求参数解析异常
    • 检查PHP配置里的upload_max_filesize和post_max_size参数,确认值大于你上传的文件总大小,超过限制的文件会被服务端过滤
    • 追加FormData时可以直接使用dropzone返回的原生acceptedFiles对象,避免你给file对象额外添加的preview属性影响文件解析

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.22 02:15:03