我正在尝试找到一个可以识别文件类型的包。例如
final path = "/some/path/to/file/file.jpg";
Run Code Online (Sandbox Code Playgroud)
应该被识别为图像或
final path = "/some/path/to/file/file.doc";
Run Code Online (Sandbox Code Playgroud)
应该被识别为文件
cre*_*not 22
您可以使用mimeDart 团队的包从文件名中提取MIME 类型:
import 'package:mime/mime.dart';
final mimeType = lookupMimeType('/some/path/to/file/file.jpg'); // 'image/jpeg'
Run Code Online (Sandbox Code Playgroud)
如果你想知道一个文件路径是否代表一个图像,你可以创建一个这样的函数:
import 'package:mime/mime.dart';
bool isImage(String path) {
final mimeType = lookupMimeType(path);
return mimeType.startsWith('image/');
}
Run Code Online (Sandbox Code Playgroud)
同样,如果你想知道一个路径是否代表一个文档,你可以写一个这样的函数:
import 'package:mime/mime.dart';
bool isDocument(String path) {
final mimeType = lookupMimeType(path);
return mimeType == 'application/msword';
}
Run Code Online (Sandbox Code Playgroud)
您可以在 IANA找到 MIME 类型列表或查看包中的扩展映射mime。
使用该mime包,您甚至可以检查文件的头字节:
final mimeType = lookupMimeType('image_without_extension', headerBytes: [0xFF, 0xD8]); // jpeg
Run Code Online (Sandbox Code Playgroud)
Yas*_*ash 11
不需要任何扩展。您可以尝试下面的代码片段。
String getFileExtension(String fileName) {
return ".${fileName.split('.').last}".toLowerCase();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6394 次 |
| 最近记录: |