<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      hyperf文件上傳和url函數(shù)

      2024年4月29日11:24:35

      配置靜態(tài)資源
      如果您希望 Swoole 來(lái)管理靜態(tài)資源,請(qǐng)?jiān)?config/autoload/server.php 配置中增加以下配置。

      return [
          'settings' => [
              ...
              // 靜態(tài)資源
              'document_root' => BASE_PATH . '/public',
              'enable_static_handler' => true,
          ],
      ];
      
      

      控制器

      public function uploadFile()
          {
              $file = $this->request->file('file');
      
              try {
                  if ($file == null) {
                      throw new Exception('未找到上傳文件');
                  }
                  $data = CommonService::uploadFile($file, ['xls', 'xlsx', 'pdf', 'xls', 'xlsx', 'doc', 'docx', 'ppt', 'zip', 'pptx', 'mp4', 'flv'], 'file');
      
                  return $this->success($data, '上傳成功');
              } catch (Throwable $e) {
                  return $this->fail($e);
              }
          }
      

      需要引入 "zx/php-tools": "^0.0.1"

      use Hyperf\HttpMessage\Upload\UploadedFile;
      use ZX\Tools\File\MimeTypes;
      
      //全局通用文件上傳組件
          public static function uploadFile(UploadedFile $uploadedFile, array $acceptExt, string $fileType = 'image')
          {
              $ext = $uploadedFile->getExtension();
              p($ext);
      
              if (!in_array($ext, $acceptExt)) {
                  throw new Exception('文件名后綴不允許');
              }
              //圖片檢測(cè)安全
              if ($fileType == 'image') {
                  $res = self::checkMimeType($uploadedFile, $ext);
                  if ($res == false) {
                      throw new Exception('文件安全檢測(cè)未通過(guò)');
                  }
              }
      
              $date = date('Ymd');
              $filePath = GlobalCode::UPLOAD_URL . DIRECTORY_SEPARATOR . $fileType . DIRECTORY_SEPARATOR . $date . DIRECTORY_SEPARATOR;
              $allDir = 'public' . DIRECTORY_SEPARATOR . $filePath;
              p($allDir);
      
              if (!is_dir($allDir)) {
                  if (!mkdir($allDir, 0755, true)) {
                      throw new Exception('創(chuàng)建文件夾失敗');
                  }
              }
      
              $fileName = getToken() . '.' . $ext;
              $finalPath = BASE_PATH . DIRECTORY_SEPARATOR . $allDir . DIRECTORY_SEPARATOR . $fileName;
              $showPath = $filePath . DIRECTORY_SEPARATOR . $fileName;
      
              $uploadedFile->moveTo($finalPath);
              /*
               * 注意windows下返回的地址可能會(huì)出現(xiàn)雙斜杠,linux不會(huì)
               * windows:http://www.la.com/upload\\image\\20230626\\15d092d9058b7c3ac1952c79ede5b411.jpg
               * linux:http://www.la.com/upload/image/20230626/15d092d9058b7c3ac1952c79ede5b411.jpg
               */
      //        return $filePath . $fileName;
      
              return ['id' => uniqid(), 'src' => $showPath, 'fileName' => $fileName];
          }
      
          //檢測(cè)文件是否合法
          public static function checkMimeType(UploadedFile $uploadedFile, string $ext = '')
          {
              try {
                  $filePath = $uploadedFile->getRealPath();
                  p($uploadedFile->getRealPath());
      
                  $fileMimeType = mime_content_type($filePath);
                  p($fileMimeType);
                  $mimeTypes = MimeTypes::getImage();
                  $isExist = array_key_exists($fileMimeType, $mimeTypes);
      
                  if (!$isExist) {
                      throw new Exception('非允許mime types類型');
                  }
      
                  list($width, $height, $type, $attr) = getimagesize($filePath, $ext);
                  if ($width <= 0 || $height <= 0) {
                      return false;
                  } else {
                      return true;
                  }
      
              } catch (Exception $e) {
                  return false;
              }
      
          }
      
      

      url輔助函數(shù)返回請(qǐng)求的文件的全url

      方案一:
      abstract class AbstractController
      {
          #[Inject]
          protected ContainerInterface $container;
      
          #[Inject]
          protected RequestInterface $request;
      
          #[Inject]
          protected ResponseInterface $response;
      
          /**
           * 生成快捷URL
           * @param string $str
           * @return void
           */
          public function to(string $str = '')
          {
              $scheme = $this->request->getUri()->getScheme() ?? 'http';
              $host = $this->request->getUri()->getHost() ?? '127.0.0.1';
              $port = $this->request->getUri()->getPort() ?? config('server.servers.port', 9500);
      
             $url = '';
              if ($port == 80 || $port == 443) {
                  $url = "{$scheme}://{$host}/{$str}";
              } else {
                  $url = "{$scheme}://{$host}:{$port}/{$str}";
              }
              return $url;
          }
      }
      
      方案二:
      if (!function_exists('to')) {
          //快捷生成路徑
          function to(string $str = '')
          {
              $request = ApplicationContext::getContainer()->get(RequestInterface::class);
      
              $scheme = $request->getUri()->getScheme() ?? 'http';
              $host = $request->getUri()->getHost() ?? '127.0.0.1';
              $port = $request->getUri()->getPort() ?? config('server.servers.port', 9500);
      
              $url = '';
              if ($port == 80 || $port == 443) {
                  $url = "{$scheme}://{$host}/{$str}";
              } else {
                  $url = "{$scheme}://{$host}:{$port}/{$str}";
              }
              return $url;
          }
      
      }
      

      posted on 2024-04-29 22:04  zh7314  閱讀(170)  評(píng)論(0)    收藏  舉報(bào)

      主站蜘蛛池模板: 亚洲中文久久久精品无码| 国产一区二区三区在线看| 午夜性色一区二区三区不卡视频| 麻豆tv入口在线看| 97色伦97色伦国产| 麻豆蜜桃av蜜臀av色欲av| 亚洲色偷偷色噜噜狠狠99| 亚洲精品乱码久久久久久蜜桃| 久久国产成人精品国产成人亚洲| 日韩国产成人精品视频| 久久在线视频免费观看| 少妇熟女高潮流白浆| 少妇熟女久久综合网色欲| 艳妇臀荡乳欲伦69调教视频| 麻豆精品一区二区三区蜜臀| 99在线精品国自产拍中文字幕| 梁山县| 欧美在线观看www| 国产精品一区二区国产主播| 亚洲午夜无码久久久久蜜臀av| 国产精品无码免费播放| 亚洲精品第一区二区三区 | 国产成人精品午夜福利在线观看| 国产一区二区黄色在线观看| 无码人妻丝袜在线视频| 人妻中出无码一区二区三区 | 国产成人一区二区三区视频免费| 人妻中文字幕亚洲精品| 色综合久久中文综合久久激情| 国产清纯在线一区二区| 恩施市| 午夜国产小视频| 给我播放片在线观看| 国产精一区二区黑人巨大| 亚洲欧美综合人成在线 | 四虎国产精品永久入口| 丁香五月亚洲综合在线国内自拍| 被黑人巨大一区二区三区| 亚洲日韩一区二区| 国内精品久久久久电影院| 林口县|