Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 如何使用api post方法发送文件?_Flutter_Dart - Fatal编程技术网

Flutter 如何使用api post方法发送文件?

Flutter 如何使用api post方法发送文件?,flutter,dart,Flutter,Dart,这是我的post方法,我可以发送任何文本格式的东西,但我需要发送一个文件 如果可以,只修改我的代码。这很容易解决问题,谢谢 getComp() async { final Map<String, dynamic> jsondata = { 'employee_id': '${ScopedModel.of<AppModel>(context, rebuildOnChange: true).employee_id}', 'receiver_id': '

这是我的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');
}
}

如果可以,请修改此代码。

首先将其转换为base64并将其插入数据库。当我们开发了一个将文件传递到数据库的应用程序时,我就是这样做的。

我用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);
}
 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);
}