这是我的post方法,我可以发送任何文本格式的文件,但是我需要发送文件。
如果可以,仅修改我的代码。这很容易引起捕获问题,谢谢
getComp() async {
final Map<String, dynamic> jsondata = {
'employee_id':
'${ScopedModel.of<AppModel>(context, rebuildOnChange: true).employee_id}',
'receiver_id': '${recid.text}',
'subject': '${subject.text}',
'message_body': '${msgbody.text}',
'message_attachment':'${filePath}'
};
var jsonresponse = null;
var response = await http.post(
'example.com/compose',
headers: {
"Accept": "application/json"
},
body: jsondata,
);
if (response.statusCode == 200) {
jsonresponse = json.decode(response.body);
print(jsonresponse);
}else{
print('problem');
}
}
这是我的文件路径选择器
getfile(){
filePath = FilePicker.getFilePath(type: FileType.ANY);
}
如果可以,请修改此代码。
答案 0 :(得分:0)
首先将其转换为base64并将其插入数据库。当我们开发一个将文件传递到数据库的应用程序时,就是这样做的。
答案 1 :(得分:0)
我用dio解决了我的问题:( 如果有人面对,请使用dio
uploadFile() async {
FormData formData = new FormData.fromMap({
'employee_id':
'546546',
'receiver_id': '${recid.text}',
'subject': '${subject.text}',
'message_body': '${msgbody.text}',
'message_attachment': filePath ==null? 'nothing': await
MultipartFile.fromFile("${filePath}",filename: "$filePath}"),
});
Response response = await Dio().post("example.com", data: formData);
print(response);
}