readFileInputElementAsBlobUrl function

Future<String?> readFileInputElementAsBlobUrl(
  1. HTMLInputElement? input, [
  2. bool removeExifFromImage = false
])

Reads selected file of input and return a Blob URL.

Implementation

Future<String?> readFileInputElementAsBlobUrl(HTMLInputElement? input,
    [bool removeExifFromImage = false]) async {
  if (input == null) return null;

  final files = input.files;
  if (files == null || files.isEmpty) return null;

  var file = files.item(0)!;

  String? data;
  if (removeExifFromImage) {
    data = await removeExifFromImageFile(file);
  }

  if (data == null) {
    data = await readFileDataAsBlobURL(file);
  } else if (data.startsWith('data:')) {
    var dataUrlBase64 = DataURLBase64.parse(data);
    if (dataUrlBase64 != null) {
      data = createBlobURL(
          dataUrlBase64.payloadArrayBuffer, dataUrlBase64.mimeTypeAsString);
    }
  }

  return data;
}