ResourceController.php 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  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([
  35. 'id' => $re->id,
  36. 'path' => $re->path,
  37. 'url' => $re->url,
  38. ]);
  39. }
  40. /**
  41. * 导出
  42. * Author: Mead
  43. */
  44. public function download(Request $request)
  45. {
  46. $this->validate($request, ['id' => 'required|integer']);
  47. $resource = Resource::query()->first($request->get('id'));
  48. return response()->download(Storage::disk($resource->disk)->url($resource->path));
  49. }
  50. }