mirror of
https://github.com/lifegpc/eh_downloader_flutter.git
synced 2026-06-06 05:49:03 +08:00
36 lines
843 B
Dart
36 lines
843 B
Dart
import 'dart:js_interop';
|
|
import 'dart:typed_data';
|
|
import 'package:web/web.dart';
|
|
|
|
void saveFileWeb(
|
|
Uint8List data, String mimeType, String filenameWithoutExtension) {
|
|
final blobOpts = BlobPropertyBag(type: mimeType);
|
|
final blob = Blob([data.toJS].toJS, blobOpts);
|
|
final url = URL.createObjectURL(blob);
|
|
final a = document.createElement("a") as HTMLAnchorElement;
|
|
a.href = url;
|
|
var ext = "";
|
|
switch (mimeType) {
|
|
case "image/jpeg":
|
|
ext = ".jpg";
|
|
break;
|
|
case "image/png":
|
|
ext = ".png";
|
|
break;
|
|
case "image/gif":
|
|
ext = ".gif";
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
a.download = "$filenameWithoutExtension$ext";
|
|
a.click();
|
|
URL.revokeObjectURL(url);
|
|
}
|
|
|
|
void saveUriWeb(String uri) {
|
|
final a = document.createElement("a") as HTMLAnchorElement;
|
|
a.href = uri;
|
|
a.click();
|
|
}
|