files_helper.dart 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. import 'package:path/path.dart' as p;
  2. class FileHelper {
  3. static getMimeType(String filePath) {
  4. var fileExtension = p.extension(filePath).split(".")[1];
  5. switch (fileExtension.toLowerCase()) {
  6. case 'gif':
  7. return {"type": "image", "subType": "gif"};
  8. case 'jpeg':
  9. return {"type": "image", "subType": "jpeg"};
  10. case 'jpg':
  11. return {"type": "image", "subType": "jpeg"};
  12. case 'png':
  13. return {"type": "image", "subType": "png"};
  14. case 'tif':
  15. return {"type": "image", "subType": "tiff"};
  16. case 'mov':
  17. return {"type": "video", "subType": "quicktime"};
  18. case 'mp4':
  19. return {"type": "video", "subType": "mp4"};
  20. case 'avi':
  21. return {"type": "video", "subType": "x-msvideo"};
  22. case 'heic':
  23. return {"type": "image", "subType": "heic"};
  24. case 'heif':
  25. return {"type": "image", "subType": "heif"};
  26. case 'dng':
  27. return {"type": "image", "subType": "dng"};
  28. case 'webp':
  29. return {"type": "image", "subType": "webp"};
  30. case '3gp':
  31. return {"type": "video", "subType": "3gpp"};
  32. case 'webm':
  33. return {"type": "video", "subType": "webm"};
  34. case 'avif':
  35. return {"type": "image", "subType": "avif"};
  36. case 'insp':
  37. return {"type": "image", "subType": "jpeg"};
  38. case 'insv':
  39. return {"type": "video", "subType": "mp4"};
  40. case 'arw':
  41. return {"type": "image", "subType": "x-sony-arw"};
  42. case 'raf':
  43. return {"type": "image", "subType": "x-fuji-raf"};
  44. case 'nef':
  45. return {"type": "image", "subType": "x-nikon-nef"};
  46. case 'srw':
  47. return {"type": "image", "subType": "x-samsung-srw"};
  48. case 'crw':
  49. return {"type": "image", "subType": "x-canon-crw"};
  50. case 'cr2':
  51. return {"type": "image", "subType": "x-canon-cr2"};
  52. case 'cr3':
  53. return {"type": "image", "subType": "x-canon-cr3"};
  54. case 'erf':
  55. return {"type": "image", "subType": "x-epson-erf"};
  56. case 'dcr':
  57. return {"type": "image", "subType": "x-kodak-dcr"};
  58. case 'k25':
  59. return {"type": "image", "subType": "x-kodak-k25"};
  60. case 'kdc':
  61. return {"type": "image", "subType": "x-kodak-kdc"};
  62. case 'mrw':
  63. return {"type": "image", "subType": "x-minolta-mrw"};
  64. case 'orf':
  65. return {"type": "image", "subType": "x-olympus-orf"};
  66. case 'raw':
  67. return {"type": "image", "subType": "x-panasonic-raw"};
  68. case 'pef':
  69. return {"type": "image", "subType": "x-panasonic-pef"};
  70. case 'x3f':
  71. return {"type": "image", "subType": "x-sigma-x3f"};
  72. case 'srf':
  73. return {"type": "image", "subType": "x-sony-srf"};
  74. case 'sr2':
  75. return {"type": "image", "subType": "x-sony-sr2"};
  76. case '3fr':
  77. return {"type": "image", "subType": "x-hasselblad-3fr"};
  78. case 'fff':
  79. return {"type": "image", "subType": "x-hasselblad-fff"};
  80. case 'rwl':
  81. return {"type": "image", "subType": "x-leica-rwl"};
  82. case 'ori':
  83. return {"type": "image", "subType": "x-olympus-ori"};
  84. case 'iiq':
  85. return {"type": "image", "subType": "x-phaseone-iiq"};
  86. case 'ari':
  87. return {"type": "image", "subType": "x-arriflex-ari"};
  88. case 'cap':
  89. return {"type": "image", "subType": "x-phaseone-cap"};
  90. case 'cin':
  91. return {"type": "image", "subType": "x-phantom-cin"};
  92. default:
  93. return {"type": "unsupport", "subType": "unsupport"};
  94. }
  95. }
  96. }