首页 > 解决方案 > Flutter - 未处理的异常:NoSuchMethodError:在 null 上调用了 getter 'filename'

问题描述

我仍在学习颤振,并且在我的项目中一直面临问题,例如标题中所述的错误。我想使用 dio 和 formData 上传文件。img[] 是 mongodb 数据库中的变量,每当用户传递空图像时,我都会遇到错误。(因为我们不要求用户发送图像。)

这是我的代码。

 upload2(List<File> babyList) async {

    var formData = FormData.fromMap({
      "userId": _id,
      "babyname": _baby,
    });

    if(_babyList.length != 0){
      for (int i = 0; i < _babyList.length; i++) {
        var fileName = babyList[i].path.split('/').last;
        formData.files.addAll([
          MapEntry(
              "babyimage[]",
              await MultipartFile.fromFile(babyList[i].path,
                  filename: fileName,
                  contentType: new MediaType(lookupMimeType(fileName).split('/')[0], lookupMimeType(fileName).split('/')[1],
                  ))),
        ]);
      }
    } else {
      formData.files.addAll([ MapEntry("babyimage[]", null)]);
    }

    // sending the formdata to the database
    AuthService().requestorRegister(formData).then((val) async {
      print('Form Submitted Successfully');
      _confirmationDialog(context);
    });

  }

标签: mongodbfile-uploadmultipartform-dataform-data

解决方案


好的,我试过不在formdata中添加babyimage[],我也试过把空数组,null和babyList作为值。问题是它们可以工作,就我而言,唯一的问题是服务器。服务器没有更新。所以有时我们也必须检查服务器。哈哈

PS。我删除了代码中的 else 因为它是空的。


推荐阅读