我尝试将图片上传到服务器,但出现错误 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,
});
}
我应该对代码进行哪些更改?
答案 0 :(得分:0)
您不能只是将任意类实例转换为 JSON。
一种选择是为 JsonEncoder() 构造函数提供自定义函数(通过 toEncodable 参数)。这个自定义函数应该将您的自定义对象映射到 JsonEncoder 已经知道如何处理的类型(即数字、字符串、布尔值、null、列表和带有字符串键的映射)。
https://api.dartlang.org/stable/1.24.3/dart-convert/JsonEncoder-class.html
https://pub.dartlang.org/packages/json_serializable 是一个为此生成代码的包,因此您无需手动编写。