亚洲精品亚洲人成在线观看麻豆,在线欧美视频一区,亚洲国产精品一区二区动图,色综合久久丁香婷婷

              當(dāng)前位置:首頁(yè) > IT技術(shù) > Web編程 > 正文

              【TP5項(xiàng)目統(tǒng)一規(guī)范】圖片上傳
              2021-09-29 14:53:43

              author:咔咔

              直接擼代碼,看步驟:

              前期準(zhǔn)備工作:

              第一步:創(chuàng)建上傳圖片的配置文件

              【TP5項(xiàng)目統(tǒng)一規(guī)范】圖片上傳_文件名

              第二步:引入uoload這個(gè)工具類

              【TP5項(xiàng)目統(tǒng)一規(guī)范】圖片上傳_TP5項(xiàng)目統(tǒng)一規(guī)范_02

              <?php

              namespace appdatautil;

              class UploadUtil
              {
              /**
              * @var 文件信息thinkfile這個(gè)類
              */
              private $file;
              /**
              * @var 上傳圖片的目錄
              */
              private $path;
              /**
              * 上傳文件規(guī)則
              */
              // protected $validate =[
              // 'size' => 500000,
              // 'ext' => 'jpg,png,gif,jpeg',
              // ];

              /**
              * 文件上傳
              *
              * @param file thinkFile
              * @path 上傳的目錄 uploadgoods
              * @return array
              */
              public function move($file,$path)
              {
              $this->file = $file;
              // 獲取上傳的文件名
              $fileName = $this->getFileName($path);
              // 文件保存的地址
              $save = $this->getFilePath($path);
              // 判斷保存的目錄是否存在
              if(!file_exists($save)){
              mkdir($save,777,true);
              }
              // 文件保存后的名字加類型
              $image = $fileName['saveName'].'.'.$fileName['fileSuffix'];
              // 開始上傳 參數(shù)一:上傳路徑 參數(shù)二:文件名
              $info = $file->validate(['size'=>20000000,'ext'=>'jpg,png,gif'])->move($save,$image);
              // 獲取上傳后的文件名
              $this->path = $path.'/'.$image;

              if($info){
              $resule = ['code'=>SUCCESS,'data'=>$this->path];
              }else{
              $resule = ['code'=>ERROR,'data'=>$file->getError()];
              }
              return $resule;
              }

              /**
              * 配置保存路徑
              *
              * @return array
              */
              public function getFilePath($path)
              {
              return ROOT.'/'.$path;
              }

              /**
              * 獲取上傳文件的信息 名字,類型,類型
              *
              * @return array
              */
              public function getFileName()
              {
              // 獲取文件信息
              $name = $this->file->getInfo('name');
              // 問(wèn)件名1.jpg 所以需要轉(zhuǎn)數(shù)組獲取
              $fileName = explode('.',$name);
              return [
              // 文件名
              'formerlyName' => $fileName[0],
              // 保存后的文件名
              'saveName' => $fileName[0].time(),
              // 文件后綴
              'fileSuffix' => $fileName[1]
              ];
              }

              /**
              * 保存后的文件路徑
              *
              * @return array
              */
              public function functionName($flag = true)
              {
              return ($flag) ? $this->path : ROOT.'/'.$this->path;
              }
              }




              控制器獲取前端上傳的圖片信息

              $param這個(gè)參數(shù)是為了獲取圖片放置位置,在下面就可以清楚的明白

              $fileinfo是過(guò)去圖片的信息,返回時(shí)thinkFile對(duì)象

              控制器將這倆個(gè)參數(shù)傳遞給server層

              【TP5項(xiàng)目統(tǒng)一規(guī)范】圖片上傳_文件保存_03

              在server層接收到圖片信息,跟上傳類型,進(jìn)行數(shù)據(jù)組裝,最后將參數(shù)返回給工具類

              $type就是上傳類型,如video

              $path就是上傳地址如:uploadvideo

              【TP5項(xiàng)目統(tǒng)一規(guī)范】圖片上傳_文件名_04

              uoload工具類,這套工具類只需要參數(shù)文件信息,跟上傳地址,其余的的什么都不需要修改

              <?php

              namespace appdatautil;

              class UploadUtil
              {
              /**
              * @var 文件信息thinkfile這個(gè)類
              */
              private $file;
              /**
              * @var 上傳圖片的目錄
              */
              private $path;
              /**
              * 上傳文件規(guī)則
              */
              // protected $validate =[
              // 'size' => 500000,
              // 'ext' => 'jpg,png,gif,jpeg',
              // ];

              /**
              * 文件上傳
              *
              * @param file thinkFile
              * @path 上傳的目錄 uploadgoods
              * @return array
              */
              public function move($file,$path)
              {
              $this->file = $file;
              // 獲取上傳的文件名
              $fileName = $this->getFileName($path);
              // 文件保存的地址
              $save = $this->getFilePath($path);
              // 判斷保存的目錄是否存在
              if(!file_exists($save)){
              mkdir($save,777,true);
              }
              // 文件保存后的名字加類型
              $image = $fileName['saveName'].'.'.$fileName['fileSuffix'];
              // 開始上傳 參數(shù)一:上傳路徑 參數(shù)二:文件名
              $info = $file->move($save,$image);
              // 獲取上傳后的文件名
              $this->path = $path.'/'.$image;
              return ($info) ? $this->path : false;
              }

              /**
              * 配置保存路徑
              *
              * @return array
              */
              public function getFilePath($path)
              {
              return ROOT.'/'.$path;
              }

              /**
              * 獲取上傳文件的信息 名字,類型,類型
              *
              * @return array
              */
              public function getFileName()
              {
              // 獲取文件信息
              $name = $this->file->getInfo('name');
              // 問(wèn)件名1.jpg 所以需要轉(zhuǎn)數(shù)組獲取
              $fileName = explode('.',$name);
              return [
              // 文件名
              'formerlyName' => $fileName[0],
              // 保存后的文件名
              'saveName' => $fileName[0].time(),
              // 文件后綴
              'fileSuffix' => $fileName[1]
              ];
              }

              /**
              * 保存后的文件路徑
              *
              * @return array
              */
              public function functionName($flag = true)
              {
              return ($flag) ? $this->path : ROOT.'/'.$this->path;
              }
              }


              最終圖片會(huì)上傳到這里

              【TP5項(xiàng)目統(tǒng)一規(guī)范】圖片上傳_上傳_05

              本文摘自 :https://blog.51cto.com/k

              開通會(huì)員,享受整站包年服務(wù)立即開通 >