dart 获取File对象的MIME类型

y0u0uwnf  于 2023-03-10  发布在  其他
关注(0)|答案(1)|浏览(192)

我有一个dart:html File对象,我想从文件内容而不是扩展名确定MIME类型。

1szpjjfi

1szpjjfi1#

您可以使用the mime package's函数lookupMimeType,并通过使用defaultMagicNumbersMaxLengthFile上调用slice来传入headerBytes

import 'dart:async';
import 'dart:html';
import 'package:mime/mime.dart' as mime;

Future<String?> getMimeType(File file) async {
  // Create a slice for the header.
  final slice = file.slice(0, mime.defaultMagicNumbersMaxLength);

  // Read the file header's contents.
  final fileReader = FileReader();
  fileReader.readAsArrayBuffer(slice);
  await fileReader.onLoad.first;
  final header = fileReader.result as List<int>;

  // Empty string for the file name because it's not relevant.
  return mime.lookupMimeType('', headerBytes: header);
}

相关问题