FileHelper.php 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <?php
  2. namespace App\Module\File\AdminControllers\Helper;
  3. /**
  4. * 文件辅助类
  5. */
  6. class FileHelper
  7. {
  8. /**
  9. * 格式化文件大小
  10. *
  11. * @param int $size 文件大小(字节)
  12. * @return string 格式化后的文件大小
  13. */
  14. public function formatFileSize(int $size)
  15. {
  16. if ($size >= 1073741824) {
  17. return round($size / 1073741824, 2) . ' GB';
  18. } elseif ($size >= 1048576) {
  19. return round($size / 1048576, 2) . ' MB';
  20. } elseif ($size >= 1024) {
  21. return round($size / 1024, 2) . ' KB';
  22. } else {
  23. return $size . ' B';
  24. }
  25. }
  26. /**
  27. * 获取文件类型图标
  28. *
  29. * @param string $type 文件类型
  30. * @return string 图标HTML
  31. */
  32. public function getFileTypeIcon(string $type)
  33. {
  34. $type = strtolower($type);
  35. $icons = [
  36. 'pdf' => '<i class="fa fa-file-pdf-o"></i>',
  37. 'doc' => '<i class="fa fa-file-word-o"></i>',
  38. 'docx' => '<i class="fa fa-file-word-o"></i>',
  39. 'xls' => '<i class="fa fa-file-excel-o"></i>',
  40. 'xlsx' => '<i class="fa fa-file-excel-o"></i>',
  41. 'ppt' => '<i class="fa fa-file-powerpoint-o"></i>',
  42. 'pptx' => '<i class="fa fa-file-powerpoint-o"></i>',
  43. 'jpg' => '<i class="fa fa-file-image-o"></i>',
  44. 'jpeg' => '<i class="fa fa-file-image-o"></i>',
  45. 'png' => '<i class="fa fa-file-image-o"></i>',
  46. 'gif' => '<i class="fa fa-file-image-o"></i>',
  47. 'webp' => '<i class="fa fa-file-image-o"></i>',
  48. 'zip' => '<i class="fa fa-file-archive-o"></i>',
  49. 'rar' => '<i class="fa fa-file-archive-o"></i>',
  50. 'txt' => '<i class="fa fa-file-text-o"></i>',
  51. ];
  52. return $icons[$type] ?? '<i class="fa fa-file-o"></i>';
  53. }
  54. /**
  55. * 检查文件是否为图片
  56. *
  57. * @param string $type 文件类型
  58. * @return bool 是否为图片
  59. */
  60. public function isImage(string $type)
  61. {
  62. $type = strtolower($type);
  63. $imageTypes = ['jpg', 'jpeg', 'png', 'gif', 'webp', 'bmp', 'svg'];
  64. return in_array($type, $imageTypes);
  65. }
  66. }