putString method

UploadTask putString(
  1. String data, {
  2. PutStringFormat format = PutStringFormat.raw,
  3. SettableMetadata? metadata,
})

Upload a String value as a storage object.

Use PutStringFormat to correctly encode the string:

Implementation

UploadTask putString(
  String data, {
  PutStringFormat format = PutStringFormat.raw,
  SettableMetadata? metadata,
}) {
  String _data = data;
  PutStringFormat _format = format;
  SettableMetadata? _metadata = metadata;

  // Convert any raw string values into a Base64 format
  if (format == PutStringFormat.raw) {
    _data = base64.encode(utf8.encode(_data));
    _format = PutStringFormat.base64;
  }

  // Convert a data_url into a Base64 format
  if (format == PutStringFormat.dataUrl) {
    _format = PutStringFormat.base64;
    UriData uri = UriData.fromUri(Uri.parse(data));
    assert(uri.isBase64);
    _data = uri.contentText;

    if (_metadata == null && uri.mimeType.isNotEmpty) {
      _metadata = SettableMetadata(
        contentType: uri.mimeType,
      );
    }

    // If the data_url contains a mime-type & the user has not provided it,
    // set it
    if ((_metadata!.contentType == null || _metadata.contentType!.isEmpty) &&
        uri.mimeType.isNotEmpty) {
      _metadata = SettableMetadata(
        cacheControl: metadata!.cacheControl,
        contentDisposition: metadata.contentDisposition,
        contentEncoding: metadata.contentEncoding,
        contentLanguage: metadata.contentLanguage,
        contentType: uri.mimeType,
      );
    }
  }
  return UploadTask._(
      storage, _delegate.putString(_data, _format, _metadata));
}