ImagesController.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. namespace App\Http\Controllers\Api;
  3. use App\Handlers\ImageUploadHandler;
  4. use App\Http\Requests\Api\ImageRequest;
  5. use App\Http\Resources\ImageResource;
  6. use App\Models\Image;
  7. use App\Models\User;
  8. use Illuminate\Http\Request;
  9. use Illuminate\Support\Facades\Auth;
  10. # use App\Http\Controllers\Controller;
  11. class ImagesController extends Controller
  12. {
  13. /**
  14. * 图片上传功能
  15. * @param ImageRequest $request
  16. * @param ImageUploadHandler $uploader
  17. * @param Image $image
  18. * @return \Illuminate\Http\Response
  19. */
  20. public function store(ImageRequest $request, ImageUploadHandler $uploader, Image $image)
  21. {
  22. $user = $this->user();
  23. // 更新图片
  24. if ($request->action && $request->action == 'update') {
  25. if ($user->id == '1') {
  26. $uploader->update($request->path, $request->image);
  27. return $this->json([
  28. 'status' => 1,
  29. 'msg' => '替换成功 ~',
  30. ]);
  31. } else {
  32. return $this->json([]);
  33. }
  34. } else if ($request->action && $request->action == 'delete') {
  35. if ($user->id == '1') {
  36. $uploader->delete($request->path);
  37. return $this->json([
  38. 'status' => 1,
  39. 'msg' => '删除成功 ~',
  40. ]);
  41. } else {
  42. return $this->json([]);
  43. }
  44. }
  45. $size = $request->type == 'avatar' ? 362 : 1024;
  46. $result = $uploader->save($request->image, str_plural($request->image_type), $user->id, $size);
  47. $image->path = $result['path'];
  48. $image->image_type = $request->image_type;
  49. $image->user_id = $user->id;
  50. $image->save();
  51. return $this->created(new ImageResource($image));
  52. }
  53. }