ResourceController.php 1.8 KB

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