QinGang_interested/lib/http/modules/file_api.dart

110 lines
3.1 KiB
Dart

import 'dart:io';
import 'package:dio/dio.dart';
import 'package:qhd_prevention/constants/app_enums.dart';
import 'package:qhd_prevention/http/HttpManager.dart';
import 'package:qhd_prevention/http/ApiService.dart';
class FileApi {
/// 单文件上传
static Future<Map<String, dynamic>> uploadFile(
String imagePath,
UploadFileType fileEnum,
String foreignKey,
) async {
final file = File(imagePath);
if (!await file.exists()) {
throw ApiException('file_not_found', '图片不存在:$imagePath');
}
final fileName = file.path.split(Platform.pathSeparator).last;
return HttpManager().uploadImages(
baseUrl: ApiService.basePath,
path: '/basicInfo/imgFiles/save',
fromData: {
'foreignKey': foreignKey,
'type': fileEnum.type,
'path': fileEnum.path,
'files': await MultipartFile.fromFile(file.path, filename: fileName),
},
);
}
/// 多文件上传
static Future<Map<String, dynamic>> uploadFiles(
List<String> imagePaths,
UploadFileType fileEnum,
String hiddenId,
) async {
List files = [];
for (int i = 0; i < imagePaths.length; i++) {
final file = File(imagePaths[i]);
if (!await file.exists()) {
throw ApiException('file_not_found', '图片不存在:${imagePaths[i]}');
}
final fileName = file.path.split(Platform.pathSeparator).last;
files.add(await MultipartFile.fromFile(file.path, filename: fileName));
}
return HttpManager().uploadImages(
baseUrl: ApiService.basePath,
path: '/basicInfo/imgFiles/batchSave',
fromData: {
'foreignKey': hiddenId,
'type': fileEnum.type,
'path': fileEnum.path,
'files': files,
},
);
}
/// 删除已上传图片
static Future<Map<String, dynamic>> deleteImage(String path) {
return HttpManager().request(
ApiService.basePath,
'/basicInfo/imgFiles/delete?filePath=$path',
method: Method.delete,
data: {
},
);
}
/// 删除多图
static Future<Map<String, dynamic>> deleteImages(List<String> ids) {
return HttpManager().request(
ApiService.basePath,
'/basicInfo/imgFiles/ids?ids=${ids.join(",")}',
method: Method.delete,
data: {
},
);
}
/// 获取图片路径
static Future<Map<String, dynamic>> getImagePath(String id, UploadFileType fileEnum) {
return HttpManager().request(
ApiService.basePath,
'/basicInfo/imgFiles/listAll',
method: Method.get,
data: {
"eqForeignKey": id,
"eqType": fileEnum.type,
},
);
}
/// 获取图片路径
static Future<Map<String, dynamic>> getImagePathWithType(String eqForeignKey,String inForeignKey, UploadFileType typeEnum) {
return HttpManager().request(
ApiService.basePath,
'/basicInfo/imgFiles/listAll',
method: Method.get,
data: {
/// 外键id
"eqForeignKey": eqForeignKey,
/// 外键ids,多个逗号分割
"inForeignKey": inForeignKey,
"eqType": typeEnum.type,
},
);
}
}