FileService.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. <?php
  2. namespace App\Module\File\Services;
  3. use App\Module\File\Logics\FileLogic;
  4. use App\Module\File\Models\FileFile;
  5. use App\Module\File\Models\FileImg;
  6. use Illuminate\Http\UploadedFile;
  7. /**
  8. * 文件服务类
  9. *
  10. * 提供文件上传、下载、删除等服务
  11. */
  12. class FileService
  13. {
  14. /**
  15. * 文件逻辑类
  16. *
  17. * @var FileLogic
  18. */
  19. protected $fileLogic;
  20. /**
  21. * 构造函数
  22. */
  23. public function __construct()
  24. {
  25. $this->fileLogic = new FileLogic();
  26. }
  27. /**
  28. * 上传文件
  29. *
  30. * @param UploadedFile $file 上传的文件
  31. * @param int $userId 用户ID
  32. * @param string $reType 关联类型
  33. * @param int $reId 关联ID
  34. * @return FileFile 文件模型
  35. */
  36. public function uploadFile(UploadedFile $file, int $userId, string $reType = '', int $reId = 0)
  37. {
  38. return $this->fileLogic->uploadFile($file, $userId, $reType, $reId);
  39. }
  40. /**
  41. * 上传图片
  42. *
  43. * @param UploadedFile $file 上传的图片
  44. * @param int $userId 用户ID
  45. * @param bool $private 是否私有
  46. * @param string $reType 关联类型
  47. * @param int $reId 关联ID
  48. * @return FileImg 图片模型
  49. */
  50. public function uploadImage(UploadedFile $file, int $userId, bool $private = false, string $reType = '', int $reId = 0)
  51. {
  52. return $this->fileLogic->uploadImage($file, $userId, $private, $reType, $reId);
  53. }
  54. /**
  55. * 获取文件URL
  56. *
  57. * @param int $fileId 文件ID
  58. * @return string 文件URL
  59. */
  60. public function getFileUrl(int $fileId)
  61. {
  62. return $this->fileLogic->getFileUrl($fileId);
  63. }
  64. /**
  65. * 获取图片URL
  66. *
  67. * @param int $imageId 图片ID
  68. * @param bool $private 是否私有
  69. * @return string 图片URL
  70. */
  71. public function getImageUrl(int $imageId, bool $private = false)
  72. {
  73. return $this->fileLogic->getImageUrl($imageId, $private);
  74. }
  75. /**
  76. * 删除文件
  77. *
  78. * @param int $fileId 文件ID
  79. * @return bool 是否成功
  80. */
  81. public function deleteFile(int $fileId)
  82. {
  83. return $this->fileLogic->deleteFile($fileId);
  84. }
  85. /**
  86. * 删除图片
  87. *
  88. * @param int $imageId 图片ID
  89. * @return bool 是否成功
  90. */
  91. public function deleteImage(int $imageId)
  92. {
  93. return $this->fileLogic->deleteImage($imageId);
  94. }
  95. /**
  96. * 保存临时文件
  97. *
  98. * @param string $ext 文件扩展名
  99. * @param string $content 文件内容
  100. * @return string 临时文件路径
  101. */
  102. public function saveTempFile(string $ext, string $content)
  103. {
  104. return $this->fileLogic->saveTempFile($ext, $content);
  105. }
  106. /**
  107. * 获取临时文件URL
  108. *
  109. * @param string $path 临时文件路径
  110. * @return string 临时文件URL
  111. */
  112. public function getTempFileUrl(string $path)
  113. {
  114. return $this->fileLogic->getTempFileUrl($path);
  115. }
  116. }