Files
Vocasia-LMS-Mobile-apps--TA…/lib/services/profile_image_service.dart

31 lines
1.2 KiB
Dart

import 'dart:convert';
import 'dart:io';
import 'package:initial_folder/base_service.dart';
import 'package:initial_folder/helper/user_info.dart';
import 'package:initial_folder/models/profile_image_post_model.dart';
import 'package:http/http.dart' as http;
class ProfileImageService {
Future<ProfileImagePostModel> addProfileImage({required File pckFile}) async {
int? idUser = await UsersInfo().getIdUser();
Uri url = Uri.parse('$baseUrl/users/profile/user-photo/$idUser');
String? token = await UsersInfo().getToken();
var req = http.MultipartRequest('POST', url);
req.headers.addAll(headerWithToken(token!));
req.files.add(http.MultipartFile(
'foto_profile', pckFile.readAsBytes().asStream(), pckFile.lengthSync(),
filename: pckFile.path.split("/").last));
var streamed = await req.send();
var response = await http.Response.fromStream(streamed);
print('Ini file gambar nya ${pckFile.path.split("/").last}');
print(response.body);
if (response.statusCode == 201 || response.statusCode == 200) {
return ProfileImagePostModel.fromJson(jsonDecode(response.body));
} else {
throw Exception('Gagal Mengganti Foto Profil');
}
}
}