我正在使用该包图像选择器 https://pub.dev/packages/image_picker接受来自用户的图像。这会产生 PickedFile 和字节数组。由于图像随后被上传,我想知道如何从字节数组中猜测 mime 类型。
PickedFile image =
await _picker.getImage(source: ImageSource.gallery, imageQuality: 50);
Uint8List data = await image.readAsBytes();
package:mime https://pub.dev/packages/mime has a lookupMimeType https://pub.dev/documentation/mime/latest/mime/lookupMimeType.html可以从文件扩展名或内容中的魔术字节推断 MIME 类型的函数。截至撰写本文时,它应该支持检测以下内容:
application/pdf
application/postscript
image/gif
image/jpeg
image/png
image/tiff
video/mp4
model/gltf-binary
(See https://github.com/dart-lang/mime/blob/master/lib/src/magic_number.dart https://github.com/dart-lang/mime/blob/master/lib/src/magic_number.dart对于当前开箱即用支持的类型列表。)
然后你可以使用extensionFromMime https://pub.dev/documentation/mime/latest/mime/extensionFromMime.html获取文件扩展名。
Example:
var data = await image.readAsBytes();
var mime = lookupMimeType('', headerBytes: data);
var extension = extensionFromMime(mime);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)