实现思路
- 引入Dio插件,确保其在
pubspec.yaml
文件中配置正确并安装。
- 使用
Dio
的FormData
来构建要上传的文件数据。
- 在
Dio
的options
中设置onSendProgress
回调函数来监听上传进度。
关键代码片段
import 'package:dio/dio.dart';
Future<void> uploadFile(String filePath) async {
Dio dio = Dio();
try {
FormData formData = FormData.fromMap({
"file": await MultipartFile.fromFile(filePath),
});
// 监听上传进度
dio.options.onSendProgress = (int sent, int total) {
print('上传进度: ${(sent / total * 100).toStringAsFixed(2)}%');
};
Response response = await dio.post('上传接口地址', data: formData);
print('上传成功: ${response.data}');
} catch (e) {
print('上传失败: $e');
}
}