use of elemental2.dom.BlobPropertyBag in project console by hal.
the class Dispatcher method upload.
@JsIgnore
public Single<ModelNode> upload(File file, Operation operation) {
Operation uploadOperation = runAs(operation);
ConstructorBlobPartsArrayUnionType blob = ConstructorBlobPartsArrayUnionType.of(uploadOperation.toBase64String());
BlobPropertyBag options = BlobPropertyBag.create();
options.setType("application/dmr-encoded");
FormData formData = new FormData();
if (navigator.userAgent.contains("Safari") && !navigator.userAgent.contains("Chrome")) {
// Safari does not support sending new files
// https://bugs.webkit.org/show_bug.cgi?id=165081
ConstructorBlobPartsArrayUnionType fileAsBlob = ConstructorBlobPartsArrayUnionType.of(file);
formData.append(file.name, new Blob(new ConstructorBlobPartsArrayUnionType[] { fileAsBlob }));
} else {
formData.append(file.name, AppendValueUnionType.of(file));
}
formData.append(OPERATION, new Blob(new ConstructorBlobPartsArrayUnionType[] { blob }, options));
return uploadFormData(formData, uploadOperation).map(payload -> payload.get(RESULT));
}
Aggregations