繁体   English   中英

将 object 转换为可编码的 object 失败:上传文件时出现“FormData”错误的实例

[英]Converting object to an encodable object failed: Instance of 'FormData' error when uploading file

我尝试将图像上传到服务器,但出现错误Converting object to an encodable object failed: Instance of 'FormData'

我的发帖方式

 void _upload(File file) async {
        String fileName = file.path.split('/').last;
    
        FormData data = FormData.fromMap({
          "file": await MultipartFile.fromFile(
            file.path,
            filename: fileName,
          ),
        });
    
        Dio dio = new Dio();
        await dio.post(apiEndpoint + "users/avatar",
            options: Options(headers: {
              "Authorization":
                  apiToken
            }),
            data: {
              "image": data,
            });
      }

我应该在我的代码中更改什么?

您不能将任意 class 实例转换为 JSON。

一种选择是向 JsonEncoder() 构造函数(通过 toEncodable 参数)提供自定义 function。 这个自定义 function 应该 map 将您的自定义对象转换为 JsonEncoder 已经知道如何处理的类型(即数字、字符串、布尔值、null、列表和映射字符串)。

https://api.dartlang.org/stable/1.24.3/dart-convert/JsonEncoder-class.html

https://pub.dartlang.org/packages/json_serializable是一个 package 生成代码,因此您无需手动编写它。

另见https://flutter.io/json/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM