addFile method
Future<PartBuilder>
addFile(
- File file,
- MediaType mediaType, {
- ContentDispositionHeader? disposition,
Adds the file
part asyncronously.
file
The file that should be added.
mediaType
The media type of the file.
Specify the optional content disposition
element, if it should not be populated automatically.
This will add an AttachmentInfo
element to the attachments
list of this builder.
Implementation
Future<PartBuilder> addFile(File file, MediaType mediaType,
{ContentDispositionHeader? disposition}) async {
disposition ??=
ContentDispositionHeader.from(ContentDisposition.attachment);
disposition.filename ??= _getFileName(file);
disposition.size ??= await file.length();
disposition.modificationDate ??= await file.lastModified();
final child = addPart(disposition: disposition);
final data = await file.readAsBytes();
child.transferEncoding = TransferEncoding.base64;
final info = AttachmentInfo(file, mediaType, disposition.filename,
disposition.size, disposition.disposition, data, child);
attachments.add(info);
child.setContentType(mediaType, name: disposition.filename);
child._part.mimeData =
TextMimeData(MailCodec.base64.encodeData(data), false);
;
return child;
}