ResourceController.php 1.6 KB

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