48 lines
983 B
Dart
48 lines
983 B
Dart
import 'dart:io';
|
|
import 'dart:typed_data';
|
|
|
|
import 'package:mime/mime.dart';
|
|
import 'package:path/path.dart' as p;
|
|
|
|
class FilesModel {
|
|
final String path;
|
|
late String basename;
|
|
late String extname;
|
|
late File main;
|
|
final bool isRecorded;
|
|
final bool? audio;
|
|
final bool? image;
|
|
final bool? network;
|
|
final Uint8List? bytes;
|
|
|
|
FilesModel(
|
|
this.path, {
|
|
final String? name,
|
|
this.isRecorded = false,
|
|
this.audio,
|
|
this.image,
|
|
this.network,
|
|
this.bytes,
|
|
}) {
|
|
basename = name ?? p.basename(path);
|
|
extname = p.extension(path);
|
|
main = File(path);
|
|
print(isAudio());
|
|
print(isImage());
|
|
print(isNetwork());
|
|
print(path);
|
|
}
|
|
|
|
bool isAudio() {
|
|
return audio ?? lookupMimeType(path)?.startsWith('audio/') ?? false;
|
|
}
|
|
|
|
bool isImage() {
|
|
return image ?? lookupMimeType(path)?.startsWith('image/') ?? false;
|
|
}
|
|
|
|
bool isNetwork() {
|
|
return network ?? path.startsWith('blob:') || path.startsWith('/uploads');
|
|
}
|
|
}
|