You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

67 lines
1.9 KiB

  1. <?php
  2. namespace App\Controller;
  3. use App\Request\AttachmentRequest;
  4. use App\Request\ImageBase64Request;
  5. use App\Service\AttachmentServiceInterface;
  6. use Hyperf\Di\Annotation\Inject;
  7. use App\Request\ImageRequest;
  8. use League\Flysystem\Filesystem;
  9. class AttachmentController extends BaseController
  10. {
  11. /**
  12. * @Inject
  13. * @var AttachmentServiceInterface
  14. */
  15. protected $attachmentService;
  16. /**
  17. * 单文件表单上传
  18. * @param AttachmentRequest $request
  19. * @param Filesystem $filesystem
  20. * @return \Psr\Http\Message\ResponseInterface
  21. */
  22. public function upload(AttachmentRequest $request, Filesystem $filesystem)
  23. {
  24. $file = $this->request->file('upload');
  25. $type = $this->request->input('type', '');
  26. $fileName = $this->attachmentService->formUpload($file, $type, $filesystem, 'file');
  27. return $this->success(['file_path' => $fileName]);
  28. }
  29. /**
  30. * 单图表单上传
  31. * @param ImageRequest $request
  32. * @param Filesystem $filesystem
  33. * @return \Psr\Http\Message\ResponseInterface
  34. */
  35. public function uploadImage(ImageRequest $request, Filesystem $filesystem)
  36. {
  37. $file = $this->request->file('upload');
  38. $type = $this->request->input('type', '');
  39. $fileName = $this->attachmentService->formUpload($file, $type, $filesystem);
  40. return $this->success(['file_path' => $fileName]);
  41. }
  42. /**
  43. * 单图base64上传
  44. * @param ImageBase64Request $request
  45. * @param Filesystem $filesystem
  46. * @return \Psr\Http\Message\ResponseInterface
  47. */
  48. public function uploadImageByBase64(ImageBase64Request $request, Filesystem $filesystem)
  49. {
  50. $base64Code = $this->request->input('upload');
  51. $type = $this->request->input('type', '');
  52. $fileName = $this->attachmentService->base64Upload($base64Code, $type, $filesystem);
  53. return $this->success(['file_path' => $fileName]);
  54. }
  55. }