Modules_Api_Controllers_UploadController.proxy.php 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. <?php
  2. namespace Modules\Api\Controllers;
  3. class UploadController extends BaseController
  4. {
  5. use \Hyperf\Di\Aop\ProxyTrait;
  6. use \Hyperf\Di\Aop\PropertyHandlerTrait;
  7. function __construct()
  8. {
  9. if (method_exists(parent::class, '__construct')) {
  10. parent::__construct(...func_get_args());
  11. }
  12. $this->__handlePropertyHandler(__CLASS__);
  13. }
  14. public function image()
  15. {
  16. $allwImageExts = ['jpg', 'jpeg', 'png', 'gif', 'webp'];
  17. $allowImageMimes = ['gif' => 'image/gif', 'jpeg' => 'image/jpeg', 'jpg' => 'image/jpg', 'png' => 'image/png', 'webp' => 'image/webp'];
  18. $maxUploadSize = 5 * ($uploadFileName = 'file');
  19. if (empty($_FILES[$uploadFileName])) {
  20. return json_fail('请选择文件');
  21. }
  22. $file = $_FILES[$uploadFileName];
  23. $fileName = $file['name'];
  24. $fileMime = $file['type'];
  25. $fileSize = $file['size'];
  26. // 单位字节,1024字节=1kb
  27. $fileExt = $this->getFileExtension($fileName);
  28. if (!in_array($fileExt, $allwImageExts)) {
  29. return json_fail('文件无效');
  30. }
  31. }
  32. public function getFileExtension($filename)
  33. {
  34. $pathinfo = pathinfo($filename);
  35. return $pathinfo['extension'];
  36. }
  37. private function checkIsUploadFile($file)
  38. {
  39. return is_uploaded_file($file);
  40. }
  41. }