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

Flutter上传视频到Django后端返回400错误如何解决

问题排查与解决方案

第一步:获取后端返回的具体错误信息

你当前代码中已经监听了返回的响应内容,先查看控制台打印的value字段内容,后端会返回具体的错误原因(比如字段不匹配、文件超出大小限制、参数缺失等),优先根据提示定位问题效率最高。

常见问题及对应修复方案

  • 后端文件接收字段名不匹配

    你当前代码中MultipartFile的字段名设置为"video",需确认后端接口接收文件的字段名是否一致,若后端要求字段为"file"等其他值,修改对应字段名即可。
  • 缺少必要的请求头/表单参数

    部分后端接口要求携带额外请求头(如Accept: application/json、授权校验头)或额外表单参数,可按如下代码补充对应配置:
    Future uploadVideo(File videoFile) async {
      var uri = Uri.parse("http://192.168.1.6:8000/videos/");
      var request = http.MultipartRequest("POST", uri);
      // 补充必要请求头,示例如下
      request.headers.addAll({
        "Accept": "application/json",
        // 若接口有授权要求,补充对应授权头:"Authorization": "Bearer 你的接口token"
      });
      // 若后端要求额外表单参数,补充如下:
      // request.fields["user_id"] = "123";
    
      var multipartFile = await http.MultipartFile.fromPath(
        "video",
        videoFile.path,
      );
    
      request.files.add(multipartFile);
      StreamedResponse response = await request.send();
      response.stream.transform(utf8.decoder).listen((value) {
        print('后端返回内容:$value');
      });
      print(videoFile.path);
      print('响应状态码:${response.statusCode}');
      if (response.statusCode == 200) {
        print("video uploaded");
      } else {
        print("video upload failed");
      }
    }
    
  • Xampp后端上传大小限制问题

    Xampp默认PHP配置的上传大小上限通常为2M,视频文件极易超出限制导致400错误,修改方法:
    1. 打开Xampp控制面板,点击Apache行的Config按钮,选择php.ini
    2. 查找并修改以下配置项,数值可根据需要调整(如下为最大允许上传500M):
      upload_max_filesize = 500M
      post_max_size = 500M
      max_execution_time = 300
      max_input_time = 300
      
    3. 重启Apache服务后生效
  • 接口地址/请求方法不匹配

    确认接口地址http://192.168.1.6:8000/videos/是否正确,部分后端对路由末尾的斜杠有严格校验,可尝试去掉末尾斜杠测试;同时确认接口要求的请求方法确实为POST。

内容的提问来源于stack exchange,提问作者Sutharshan S Shan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 10:39:01