Flutter - 未处理的异常:NoSuchMethodError:在 null 上调用了 getter 'filename'

时间:2021-06-07 06:56:29

标签: mongodb file-upload multipartform-data form-data

我仍在学习 flutter,并且一直在我的项目中遇到问题,如标题中所述的错误。我想使用 dio 和 formData 在 flutter 中上传文件。 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);
    });

  }

1 个答案:

答案 0 :(得分:0)

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

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