FileController.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <?php
  2. declare(strict_types=1);
  3. namespace SixShop\Filesystem\Controller;
  4. use function SixShop\Core\success_response;
  5. use function SixShop\Core\page_response;
  6. use SixShop\Filesystem\Entity\FilesystemFileEntity;
  7. use think\facade\Event;
  8. use think\Request;
  9. use think\Response;
  10. class FileController
  11. {
  12. public function index(Request $request, FilesystemFileEntity $filesystemFileEntity): Response
  13. {
  14. $params = $request->get([
  15. 'category_id/d' => -1,
  16. 'keyword/s',
  17. ]);
  18. return page_response($filesystemFileEntity->getPage($params, $request->pageAndLimit()));
  19. }
  20. public function save(Request $request, FilesystemFileEntity $filesystemFileEntity): Response
  21. {
  22. $categoryId = $request->post('category_id/d', 0);
  23. $file = $request->file('file');
  24. validate([
  25. 'category_id' => 'egt:0',
  26. 'file' => 'require|fileSize:'.(1024*1024*100).',fileExt:png,jpg,jpeg,gif,fileMime:image/png,image/jpg,image/jpeg,image/gif',
  27. ], [
  28. 'category_id.egt' => '分类ID不能小于0',
  29. 'file.require' => '请选择文件',
  30. 'file.fileSize' => '文件过大',
  31. 'file.fileExt' => '文件格式错误',
  32. 'file.fileMime' => '文件格式错误',
  33. ])->check([
  34. 'category_id' => $categoryId,
  35. 'file' => $file,
  36. ]);
  37. $result = $filesystemFileEntity->upload($categoryId, $file);
  38. return success_response($result);
  39. }
  40. public function delete(int $id, FilesystemFileEntity $filesystemFileEntity): Response
  41. {
  42. $result = $filesystemFileEntity->destroy($id);
  43. Event::trigger('after_filesystem_delete', $id);
  44. return success_response($result);
  45. }
  46. public function update(int $id, Request $request, FilesystemFileEntity $filesystemFileEntity): Response
  47. {
  48. $data = $request->post([
  49. 'name/s' => '',
  50. ]);
  51. $result = $filesystemFileEntity->update($data, ['id' => $id]);
  52. return success_response($result);
  53. }
  54. }