lookupDynamic method

String lookupDynamic(
  1. String extension, {
  2. List<int>? headerBytes,
  3. String defaultMimeType = 'application/octet-stream',
})

Implementation

String lookupDynamic(String extension,
    {List<int>? headerBytes,
    String defaultMimeType = 'application/octet-stream'}) {
  extension = extension.toLowerCase().trim();

  var mimeType = lookup(extension, headerBytes: headerBytes);
  if (mimeType != null && mimeType.isNotEmpty) {
    return mimeType;
  }

  var fieldNameLength = extension.length;

  if (fieldNameLength > 1) {
    var f2 = extension.substring(0, fieldNameLength - 1);
    mimeType = lookup(f2);
    if (mimeType != null && mimeType.isNotEmpty) {
      return mimeType;
    }
  }

  if (fieldNameLength > 2) {
    var f2 = extension.substring(0, fieldNameLength - 2) +
        extension.substring(fieldNameLength - 1);
    mimeType = lookup(f2);
    if (mimeType != null && mimeType.isNotEmpty) {
      return mimeType;
    }
  }

  return defaultMimeType;
}