|
|
|
@ -1,3 +1,4 @@ |
|
|
|
import 'package:dio/dio.dart' as dio; |
|
|
|
import 'package:get/get.dart'; |
|
|
|
import 'package:get_storage/get_storage.dart'; |
|
|
|
import 'package:flutter/material.dart'; |
|
|
|
@ -14,6 +15,7 @@ import 'package:dio/dio.dart'; |
|
|
|
import '../../../routes/app_routes.dart'; |
|
|
|
import '../../../modules/login/controllers/googleLogin.dart'; |
|
|
|
import '../../../modules/login/controllers/facebookLogin.dart'; |
|
|
|
//import 'package:http_parser/http_parser.dart'; // 新增此导入 |
|
|
|
|
|
|
|
class ProfileController extends GetxController { |
|
|
|
static ProfileController get to => Get.find(); |
|
|
|
@ -150,25 +152,29 @@ class ProfileController extends GetxController { |
|
|
|
// 更新用户信息到后端 |
|
|
|
Future<void> _syncWithBackend() async { |
|
|
|
try { |
|
|
|
// 准备数据 |
|
|
|
Map<String, dynamic> data = { |
|
|
|
"image": "", // 默认空字符串 |
|
|
|
"language": currentLanguage.value, //当前用户语言 |
|
|
|
"name": userInfo.value.name, //当前用户名 |
|
|
|
}; |
|
|
|
|
|
|
|
// 如果有头像,转换为base64 |
|
|
|
// 创建FormData对象用于上传 |
|
|
|
dio.FormData formData = dio.FormData(); |
|
|
|
|
|
|
|
// 添加基本用户信息 |
|
|
|
formData.fields.add(MapEntry('language', currentLanguage.value)); |
|
|
|
formData.fields.add(MapEntry('name', userInfo.value.name)); |
|
|
|
|
|
|
|
// 如果有头像,添加到FormData |
|
|
|
if (localAvatar.value.isNotEmpty) { |
|
|
|
//如果本地头像路径不为空,即代表有头像 |
|
|
|
try { |
|
|
|
File imageFile = File(localAvatar.value); |
|
|
|
if (await imageFile.exists()) { |
|
|
|
List<int> imageBytes = await imageFile.readAsBytes(); |
|
|
|
String base64Image = base64Encode(imageBytes); |
|
|
|
data["image"] = base64Image; |
|
|
|
|
|
|
|
// // 验证base64数据 - 将base64转回图片并保存到本地 |
|
|
|
// await _verifyBase64Image(base64Image); |
|
|
|
// 添加文件到FormData |
|
|
|
formData.files.add( |
|
|
|
MapEntry( |
|
|
|
'file', |
|
|
|
await dio.MultipartFile.fromFile( |
|
|
|
imageFile.path, |
|
|
|
filename: 'avatar.jpg', |
|
|
|
), |
|
|
|
), |
|
|
|
); |
|
|
|
Logger().d('已添加头像文件到请求'); |
|
|
|
} else { |
|
|
|
Logger().e('头像文件不存在'); |
|
|
|
} |
|
|
|
@ -177,9 +183,10 @@ class ProfileController extends GetxController { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
Logger().d('准备更新用户信息: $data'); |
|
|
|
// 调用API |
|
|
|
final response = await Api.updateUserSetting(data); |
|
|
|
Logger().d('准备更新用户信息: ${formData.fields}'); |
|
|
|
|
|
|
|
// 调用API,使用FormData |
|
|
|
final response = await Api.updateUserSetting(formData); |
|
|
|
Logger().d('--更新用户信息响应: $response'); |
|
|
|
if (response != null) { |
|
|
|
Logger().d('更新成功: $response'); |
|
|
|
|