ResourceController.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <?php
  2. namespace App\Http\Controllers\Api\Base;
  3. use App\Http\Controllers\Controller;
  4. use App\Http\Resources\ResourceResource;
  5. use App\Repositories\Enums\ResponseCodeEnum;
  6. use App\Repositories\Models\Base\Resource;
  7. use App\Services\ResourceService;
  8. use Illuminate\Http\Request;
  9. use Illuminate\Support\Facades\Storage;
  10. use Jiannei\Response\Laravel\Support\Facades\Response;
  11. /**
  12. * Class ResourcesController.
  13. *
  14. * @package namespace App\Http\Controllers;
  15. */
  16. class ResourceController extends Controller
  17. {
  18. private $resourceService;
  19. public function __construct(ResourceService $resourceService)
  20. {
  21. $this->resourceService = $resourceService;
  22. }
  23. public function upload(Request $request)
  24. {
  25. $this->validate($request, [
  26. 'file' => 'file',
  27. 'type' => 'required',
  28. 'file_type' => 'required|in:img,file'
  29. ]);
  30. $re = $this->resourceService->handleUpload($request);
  31. if ($re === false) {
  32. return Response::fail(T('Error uploading file.'), ResponseCodeEnum::SERVICE_UPLOAD_ERROR);
  33. }
  34. return Response::success(new ResourceResource($re));
  35. }
  36. /**
  37. * 导出
  38. * Author: Mead
  39. */
  40. public function download(Request $request)
  41. {
  42. $this->validate($request, ['id' => 'required|integer']);
  43. $resource = Resource::query()->first($request->get('id'));
  44. return response()->download(Storage::disk($resource->disk)->url($resource->path));
  45. }
  46. }