parseForms method

Stream<Map>? parseForms()

example {name: foo, val: Instance of '_MimeMultipart'}

Implementation

Stream<Map>? parseForms() {
  if (boundary == null) return null;
  return MimeMultipartTransformer(boundary!).bind(req).map((event) {
    var input = Map.from(event.headers);
    var k = 'content-disposition';
    if (input.containsKey(k)) {
      input[k].replaceAll('form-data;', '').split(';').forEach((element) {
        var kv = element.toString().trim().split('=');
        input[kv.first.trim()] = kv.last.trim().replaceAll('"', '');
      });
      input.remove(k);
    }
    dynamic key = input['name'];
    dynamic val;
    if (input.length == 1) {
      val = utf8.decoder.bind(event).join();
    } else {
      // input.key('filename', 'name');
      input['file'] = event;
      val = input;
    }
    return {key: val};
  });
}