Open file in web

This commit is contained in:
Christian Pauly 2020-04-10 18:25:47 +02:00
parent 80386946e5
commit 6aa6d0e911
3 changed files with 21 additions and 3 deletions

View file

@ -1,15 +1,32 @@
import 'dart:io';
import 'package:famedlysdk/famedlysdk.dart';
import 'package:flutter/foundation.dart';
import 'package:open_file/open_file.dart';
import 'package:path_provider/path_provider.dart';
import 'package:universal_html/prefer_universal/html.dart' as html;
import 'package:mime_type/mime_type.dart';
extension MatrixFileExtension on MatrixFile {
void open() async {
Directory tempDir = await getTemporaryDirectory();
final file = File(tempDir.path + "/" + path.split("/").last);
file.writeAsBytesSync(bytes);
if (kIsWeb) {
final fileName = path.split('/').last;
final mimeType = mime(fileName);
var element = html.document.createElement('a');
element.setAttribute(
'href', html.Url.createObjectUrlFromBlob(html.Blob([bytes])));
element.setAttribute('target', "new");
element.setAttribute('type', mimeType);
element.style.display = 'none';
html.document.body.append(element);
element.click();
element.remove();
} else {
await OpenFile.open(file.path);
}
return;
}
}

View file

@ -348,12 +348,12 @@ packages:
source: hosted
version: "0.9.6+3"
mime_type:
dependency: transitive
dependency: "direct main"
description:
name: mime_type
url: "https://pub.dartlang.org"
source: hosted
version: "0.2.4"
version: "0.2.7"
multi_server_socket:
dependency: transitive
description:

View file

@ -52,6 +52,7 @@ dependencies:
photo_view: ^0.9.2
flutter_sound: ^2.1.1
open_file: ^3.0.1
mime_type: ^0.2.7
intl: ^0.16.0
intl_translation: ^0.17.9