fix mimetype of .heic pics when picked from files

This commit is contained in:
Salvatore Giordano
2020-11-30 15:41:25 +01:00
parent 11bee325a7
commit 6e72e8d03e
3 changed files with 18 additions and 11 deletions
+1 -1
View File
@@ -1 +1 @@
c3e639ccf9b069e37a7d1345194e6b99 be54eb19d957de3aac70eae5513f67ef
+1 -1
View File
@@ -1,6 +1,6 @@
name: example name: example
description: A new Flutter project. description: A new Flutter project.
version: 1.0.85+87 version: 1.0.86+88
environment: environment:
sdk: ">=2.2.2 <3.0.0" sdk: ">=2.2.2 <3.0.0"
+16 -9
View File
@@ -1623,14 +1623,7 @@ class MessageInputState extends State<MessageInput> {
Future<String> _uploadImage(PlatformFile file, Channel channel) async { Future<String> _uploadImage(PlatformFile file, Channel channel) async {
final filename = file.name ?? file.path?.split('/')?.last; final filename = file.name ?? file.path?.split('/')?.last;
httpParser.MediaType mimeType; final mimeType = _getMimeType(filename);
if (filename != null) {
if (filename.toLowerCase().endsWith('heic')) {
mimeType = httpParser.MediaType.parse('image/heic');
} else {
mimeType = httpParser.MediaType.parse(lookupMimeType(filename));
}
}
final bytes = file.bytes; final bytes = file.bytes;
final res = await channel.sendImage( final res = await channel.sendImage(
MultipartFile.fromBytes( MultipartFile.fromBytes(
@@ -1642,14 +1635,28 @@ class MessageInputState extends State<MessageInput> {
return res.file; return res.file;
} }
httpParser.MediaType _getMimeType(String filename) {
httpParser.MediaType mimeType;
if (filename != null) {
if (filename.toLowerCase().endsWith('heic')) {
mimeType = httpParser.MediaType.parse('image/heic');
} else {
mimeType = httpParser.MediaType.parse(lookupMimeType(filename));
}
}
return mimeType;
}
Future<String> _uploadFile(PlatformFile file, Channel channel) async { Future<String> _uploadFile(PlatformFile file, Channel channel) async {
final filename = file.name ?? file.path?.split('/')?.last; final filename = file.name ?? file.path?.split('/')?.last;
final mimeType = _getMimeType(filename);
final bytes = file.bytes; final bytes = file.bytes;
final res = await channel.sendFile( final res = await channel.sendFile(
MultipartFile.fromBytes( MultipartFile.fromBytes(
bytes, bytes,
filename: filename, filename: filename,
contentType: httpParser.MediaType.parse(lookupMimeType(filename)), contentType: mimeType,
), ),
); );
return res.file; return res.file;