【发布时间】:2021-03-18 16:25:49
【问题描述】:
我正在尝试通过我的应用程序中的 API 上传图像和一些数据,我的控制台中没有错误,我不知道我的功能有什么问题。 这是我使用的代码:
upload(File imageFile) async {
var user =
Provider.of<LoginUserProvider>(context, listen: false).userData.data;
DateFormat formater = DateFormat('yyyy-MM-dd');
String formatted = formater.format(dateTime);
var stream =
// ignore: deprecated_member_use
new http.ByteStream(DelegatingStream.typed(imageFile.openRead()));
var length = await imageFile.length();
var headers =
Provider.of<LoginUserProvider>(context, listen: false).httpHeader;
var uri = Uri.parse(
"xyz");
var request = new http.MultipartRequest("POST", uri);
request.headers.addAll(headers);
//request.headers.addAll(Environment.requestHeaderMedia);
var multipartFile = new http.MultipartFile(
'attachment',
stream,
length,
filename: imageFile.path,
contentType: MediaType('application', 'x-tar'),
);
request.fields['section_id'] = VillaID.toString();
request.fields['date'] = formatted;
request.fields['description'] = descriptionController.text;
request.files.add(multipartFile);
var response = await request.send();
print(response.statusCode);
response.stream.transform(utf8.decoder).listen((value) {
print(value);
});
try {
final streamedResponse = await request.send();
final response = await http.Response.fromStream(streamedResponse);
print(json.decode(response.body));
final responseData = json.decode(response.body) as Map<String, dynamic>;
if (response.statusCode == 200 || response.statusCode == 201) {
return true;
}catch (error) {
print(error);
return false;
}
return true;
}
那么请任何人帮助我解决我的问题!
【问题讨论】:
-
去掉try-catch在控制台查看错误
-
你能告诉我应该删除哪个部分
-
不要删除代码的任何部分,只删除
try{}catch(){},因此try-catch块不会捕获错误。 -
我删除了它,但我有错误响应和 response.body 没有定义
-
所提到的错误在控制台中?你能和我们分享一下控制台消息吗
标签: api flutter dart multipartfile