addBinary method

PartBuilder addBinary(
  1. Uint8List data,
  2. MediaType mediaType, {
  3. TransferEncoding transferEncoding = TransferEncoding.base64,
  4. ContentDispositionHeader? disposition,
  5. String? filename,
})

Adds a binary data part with the given mediaType.

Specify the optional content disposition header, if it should not be populated automatically.

Optionally specify the filename when the disposition header is generated automatically.

Implementation

PartBuilder addBinary(
  Uint8List data,
  MediaType mediaType, {
  TransferEncoding transferEncoding = TransferEncoding.base64,
  ContentDispositionHeader? disposition,
  String? filename,
}) {
  disposition ??= ContentDispositionHeader.from(
    ContentDisposition.attachment,
    filename: filename,
    size: data.length,
  );
  final child = addPart(disposition: disposition)
    ..transferEncoding = TransferEncoding.base64
    ..setContentType(mediaType, name: filename);
  final info = AttachmentInfo(
    null,
    mediaType,
    filename,
    data.length,
    disposition.disposition,
    data,
    child,
  );
  _attachments.add(info);
  child._part.mimeData = TextMimeData(
    MailCodec.base64.encodeData(data),
    containsHeader: false,
  );

  return child;
}