no message
This commit is contained in:
@@ -13,7 +13,9 @@ class LookImagesTool {
|
||||
static lookImages({
|
||||
required List<String> listData,
|
||||
int? currentPage,
|
||||
void Function(String)? onCallBack,
|
||||
String? oSSAccessKeyId,
|
||||
Function? callBack,
|
||||
String? policy,
|
||||
String? callback,
|
||||
String? signature,
|
||||
@@ -46,6 +48,7 @@ class LookImagesWidget extends StatefulWidget {
|
||||
final String? signature;
|
||||
final String? ossDirectory;
|
||||
final String? ossHost;
|
||||
final void Function(String)? onCallBack;
|
||||
|
||||
const LookImagesWidget({
|
||||
super.key,
|
||||
@@ -57,6 +60,7 @@ class LookImagesWidget extends StatefulWidget {
|
||||
this.signature,
|
||||
this.ossDirectory,
|
||||
this.ossHost,
|
||||
this.onCallBack,
|
||||
});
|
||||
|
||||
@override
|
||||
@@ -129,16 +133,12 @@ class _LookImagesWidgetState extends State<LookImagesWidget> {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
/// 可选:根据字节头自动识别文件后缀(如图片、视频)
|
||||
String getExtension(Uint8List uint8List) {
|
||||
if (uint8List.length < 4) return "bin"; // 无法识别时返回二进制后缀
|
||||
|
||||
// PNG 头:89 50 4E 47
|
||||
if (uint8List[0] == 0x89 &&
|
||||
uint8List[1] == 0x50 &&
|
||||
uint8List[2] == 0x4E &&
|
||||
uint8List[3] == 0x47) {
|
||||
if (uint8List[0] == 0x89 && uint8List[1] == 0x50 && uint8List[2] == 0x4E && uint8List[3] == 0x47) {
|
||||
return "png";
|
||||
}
|
||||
// JPG 头:FF D8 FF
|
||||
@@ -163,11 +163,12 @@ class _LookImagesWidgetState extends State<LookImagesWidget> {
|
||||
}
|
||||
}
|
||||
|
||||
/// Uint8List 转临时 File
|
||||
Future<File?> uint8ListToTempFile(Uint8List uint8List, {String fileName = "temp_file"}) async {
|
||||
/// Uint8List 转临时 File 并且上传到oss并返回访问路径
|
||||
Future<String?> uint8ListToTempFile(Uint8List uint8List, {String fileName = "temp_file"}) async {
|
||||
try {
|
||||
// 1. 获取临时存储目录(跨平台兼容)
|
||||
Directory tempDir = await getTemporaryDirectory();
|
||||
|
||||
String tempPath = tempDir.path;
|
||||
|
||||
// 2. 拼接文件路径(可自定义后缀,如 .png、.mp4 等)
|
||||
@@ -175,7 +176,9 @@ class _LookImagesWidgetState extends State<LookImagesWidget> {
|
||||
|
||||
// 3. 将 Uint8List 写入文件
|
||||
await tempFile.writeAsBytes(uint8List);
|
||||
print("临时文件路径:${tempFile.path}");
|
||||
|
||||
// print("临时文件路径:${tempFile.path}");
|
||||
|
||||
String imageUrl = await UploadOss.upload(
|
||||
tempFile.path,
|
||||
fileType: getExtension(uint8List),
|
||||
@@ -186,8 +189,8 @@ class _LookImagesWidgetState extends State<LookImagesWidget> {
|
||||
callback: widget.callback ?? '',
|
||||
signature: widget.signature ?? '',
|
||||
);
|
||||
print("上传后的路径:$imageUrl");
|
||||
return tempFile;
|
||||
// print("上传后的访问路径:$imageUrl");
|
||||
return imageUrl;
|
||||
} catch (e) {
|
||||
print("转换临时文件失败:$e");
|
||||
return null;
|
||||
@@ -201,7 +204,6 @@ class _LookImagesWidgetState extends State<LookImagesWidget> {
|
||||
initialPage = 0;
|
||||
currentPage = 0;
|
||||
} else {
|
||||
// initialPage = 0;
|
||||
currentPage = widget.currentPage ?? 0;
|
||||
}
|
||||
super.initState();
|
||||
@@ -238,7 +240,8 @@ class _LookImagesWidgetState extends State<LookImagesWidget> {
|
||||
child: GestureDetector(
|
||||
onTap: () async {
|
||||
Uint8List? imageFile = await editImage(url: listData[currentPage]);
|
||||
uint8ListToTempFile(imageFile??Uint8List(0));
|
||||
String? url = await uint8ListToTempFile(imageFile ?? Uint8List(0));
|
||||
widget.onCallBack!(url??'');
|
||||
},
|
||||
child: Icon(Icons.edit, color: Colors.white))),
|
||||
//图片张数指示器
|
||||
|
||||
Reference in New Issue
Block a user