Dart API Referencedart:htmlBlob

Blob class

This is an experimental feature
Because this feature is still in development in some browsers, check the compatibility table for the proper prefixes to use in various browsers.

A Blob object represents a file-like object of immutable, raw data. Blobs represent data that isn't necessarily in a JavaScript-native format. The File interface is based on Blob, inheriting blob functionality and expanding it to support files on the user's system.

An easy way to construct a Blob is by using the BlobBuilder interface, which lets you iteratively append data to a blob, then retrieve the completed blob when you're ready to use it for something. Another way is to use the slice() method to create a blob that contains a subset of another blob's data.

Note: The slice() method has vendor prefixes: blob.mozSlice() for Firefox and blob.webkitSlice() for Chrome. An old version of the slice() method, without vendor prefixes, had different semantics, as described below.
@DomName('Blob')
class Blob native "Blob" {

 @DomName('Blob.size')
 @DocsEditable
 final int size;

 @DomName('Blob.type')
 @DocsEditable
 final String type;

 @DomName('Blob.slice')
 @DocsEditable
 Blob slice([int start, int end, String contentType]) native;

 factory Blob(List blobParts, [String type, String endings]) {
   // TODO: validate that blobParts is a JS Array and convert if not.
   // TODO: any coercions on the elements of blobParts, e.g. coerce a typed
   // array to ArrayBuffer if it is a total view.
   if (type == null && endings == null) {
     return _create_1(blobParts);
   }
   var bag = _create_bag();
   if (type != null) _bag_set(bag, 'type', type);
   if (endings != null) _bag_set(bag, 'endings', endings);
   return _create_2(blobParts, bag);
 }

 static _create_1(parts) => JS('Blob', 'new Blob(#)', parts);
 static _create_2(parts, bag) => JS('Blob', 'new Blob(#, #)', parts, bag);

 static _create_bag() => JS('var', '{}');
 static _bag_set(bag, key, value) { JS('void', '#[#] = #', bag, key, value); }
}

Extends

Interceptor > Blob

Subclasses

File

Constructors

factory Blob(List blobParts, [String type, String endings]) #

factory Blob(List blobParts, [String type, String endings]) {
 // TODO: validate that blobParts is a JS Array and convert if not.
 // TODO: any coercions on the elements of blobParts, e.g. coerce a typed
 // array to ArrayBuffer if it is a total view.
 if (type == null && endings == null) {
   return _create_1(blobParts);
 }
 var bag = _create_bag();
 if (type != null) _bag_set(bag, 'type', type);
 if (endings != null) _bag_set(bag, 'endings', endings);
 return _create_2(blobParts, bag);
}

Properties

final int hashCode #

inherited from Interceptor

Get a hash code for this object.

All objects have hash codes. Hash codes are guaranteed to be the same for objects that are equal when compared using the equality operator ==. Other than that there are no guarantees about the hash codes. They will not be consistent between runs and there are no distribution guarantees.

If a subclass overrides hashCode it should override the equality operator as well to maintain consistency.

docs inherited from Object
int get hashCode => Primitives.objectHashCode(this);

final Type runtimeType #

inherited from Interceptor

A representation of the runtime type of the object.

docs inherited from Object
Type get runtimeType => getRuntimeType(this);

final int size #

The size, in bytes, of the data contained in the Blob object. Read only.
final int size

final String type #

An ASCII-encoded string, in all lower case, indicating the MIME type of the data contained in the Blob. If the type is unknown, this string is empty. Read only.
final String type

Operators

bool operator ==(other) #

inherited from Interceptor

The equality operator.

The default behavior for all Objects is to return true if and only if this and other are the same object.

If a subclass overrides the equality operator it should override the hashCode method as well to maintain consistency.

docs inherited from Object
bool operator ==(other) => identical(this, other);

Methods

dynamic noSuchMethod(Invocation invocation) #

inherited from Interceptor

noSuchMethod is invoked when users invoke a non-existant method on an object. The name of the method and the arguments of the invocation are passed to noSuchMethod in an Invocation. If noSuchMethod returns a value, that value becomes the result of the original invocation.

The default behavior of noSuchMethod is to throw a noSuchMethodError.

docs inherited from Object
dynamic noSuchMethod(Invocation invocation) {
 throw new NoSuchMethodError(
     this,
     _symbolToString(invocation.memberName),
     invocation.positionalArguments,
     _symbolMapToStringMap(invocation.namedArguments));
}

Blob slice([int start, int end, String contentType]) #

@DomName('Blob.slice')
@DocsEditable
Blob slice([int start, int end, String contentType]) native;

String toString() #

inherited from Interceptor

Returns a string representation of this object.

docs inherited from Object
String toString() => Primitives.objectToString(this);

This page includes content from the Mozilla Foundation that is graciously licensed under a Creative Commons: Attribution-Sharealike license. Mozilla has no other association with Dart or dartlang.org. We encourage you to improve the web by contributing to The Mozilla Developer Network.