flutter_uploader icon indicating copy to clipboard operation
flutter_uploader copied to clipboard

Android mime type not detected if file path contains whitespace

Open BradenBagby opened this issue 2 years ago • 3 comments

For example: after compressing with video_compress (https://pub.dev/packages/video_compress) plugin, path could be: '/storage/emulated/0/Android/data/com.example/files/video_compress/VID_2021-10-25 02-21-21.mp4' which would be detected as mime type 'application/octet-stream' instead of 'video/mp4'

Debated on whether this is an issue with video_compress creating paths with whitespace, or flutter_uploader not accepting paths with whitespace. Decided this is a flutter_uploader issue. iOS works fine with whitespace

BradenBagby avatar Oct 25 '21 19:10 BradenBagby

Any updates on this? After the investigation, it seems that the method that causes the issue is private String GetMimeType(String url) in UploadWorker.java, specifically - String extension = MimeTypeMap.getFileExtensionFromUrl(url);. I assume this part returns null or empty string.

mkobuolys avatar Jan 06 '22 14:01 mkobuolys

It may be better to use something from okhttp like MimeUtils, the MimeTypeMap is not as exhaustive.

cfsbhawkins avatar Jan 20 '22 19:01 cfsbhawkins

@cfsbhawkins Could you prepare a PR?

ened avatar Jan 20 '22 20:01 ened