Flutter 发送数据到API(图片和表单)
Flutter Sending Data to API (Image and Form)
我可以将图片发送到 API,但如果是表单数据,它不会上传到 API
你能帮帮我吗?
final String uploadUrl =
'https://demo.likemyfiles.com/DS/api/api_supervisor/upload_attend_selfie';
var res = await uploadImage(_imageFile.path, uploadUrl);
图片是通过API上传的,但表格不是
Future<String> uploadImage(filepath, url) async {
// No issue in the keyWords
Map mapeddate ={
'date':"23-07-2021",
'time':"05:37",
'lat':"28.535517",
'lng':"77.391029",
'location':"Noida Sector 51 Gautam Buddh Nagar India, 201303",
'activity_id':"4",
'supervisor_id':"3",
};
var request = http.MultipartRequest('POST', Uri.parse(url));
request.files.add(await http.MultipartFile.fromPath('userfile', filepath));
var res = await request.send();
return res.reasonPhrase;
}
HTTP 包无法发送表单数据,您应该使用 Dio 包
var formData = FormData.fromMap({
'name': 'wendux',
'age': 25,
'file': await MultipartFile.fromFile('./text.txt', filename: 'upload.txt'),
});
var response = await dio.post('/info', data: formData);
使用 MultipartRequest
,您可以将表单数据添加为 fields
。
var uri = Uri.parse('https://example.com/create');
Map mapeddate ={
'date':"23-07-2021",
'time':"05:37",
'lat':"28.535517",
'lng':"77.391029",
'location':"Noida Sector 51 Gautam Buddh Nagar India, 201303",
'activity_id':"4",
'supervisor_id':"3",
};
var request = http.MultipartRequest('POST', uri)
..fields = mapedDate
..files.add(await http.MultipartFile.fromPath(
'userfile', filepath,
contentType: MediaType('image', 'jpeg')));
var response = await request.send();
if (response.statusCode == 200) print('Uploaded!');
该示例取自 documentation 并根据您的问题进行了调整。
我可以将图片发送到 API,但如果是表单数据,它不会上传到 API 你能帮帮我吗?
final String uploadUrl =
'https://demo.likemyfiles.com/DS/api/api_supervisor/upload_attend_selfie';
var res = await uploadImage(_imageFile.path, uploadUrl);
图片是通过API上传的,但表格不是
Future<String> uploadImage(filepath, url) async {
// No issue in the keyWords
Map mapeddate ={
'date':"23-07-2021",
'time':"05:37",
'lat':"28.535517",
'lng':"77.391029",
'location':"Noida Sector 51 Gautam Buddh Nagar India, 201303",
'activity_id':"4",
'supervisor_id':"3",
};
var request = http.MultipartRequest('POST', Uri.parse(url));
request.files.add(await http.MultipartFile.fromPath('userfile', filepath));
var res = await request.send();
return res.reasonPhrase;
}
HTTP 包无法发送表单数据,您应该使用 Dio 包
var formData = FormData.fromMap({
'name': 'wendux',
'age': 25,
'file': await MultipartFile.fromFile('./text.txt', filename: 'upload.txt'),
});
var response = await dio.post('/info', data: formData);
使用 MultipartRequest
,您可以将表单数据添加为 fields
。
var uri = Uri.parse('https://example.com/create');
Map mapeddate ={
'date':"23-07-2021",
'time':"05:37",
'lat':"28.535517",
'lng':"77.391029",
'location':"Noida Sector 51 Gautam Buddh Nagar India, 201303",
'activity_id':"4",
'supervisor_id':"3",
};
var request = http.MultipartRequest('POST', uri)
..fields = mapedDate
..files.add(await http.MultipartFile.fromPath(
'userfile', filepath,
contentType: MediaType('image', 'jpeg')));
var response = await request.send();
if (response.statusCode == 200) print('Uploaded!');
该示例取自 documentation 并根据您的问题进行了调整。