author:咔咔php
wechat:fangkangfk數組
圖片上傳是一個系統必須也是很重要的功能,下來我們實現一下,先來一個簡單的,可是不是很完美的工具
前臺代碼this
控制器spa
在控制器中咱們先來打印一下圖片信息code
打印出來的信息是think\file的 一個類orm
think\file這個文件只有你想不到沒有他作不到的事情,咱們就先看一下這個方法 圖片
使用getInfo能夠獲取到這個圖片的信息get
使用move進行上傳源碼
這就是簡單的上傳,可是咱們在項目中可不是這樣是使用的,哈哈!!!因此咱們須要加點料,來看下面一頓騷操做
建立albumService這個服務
建立上傳upload工具類,爲了全讓圖片顯示代碼但是費了勁了,能夠分享分享博客給大家的朋友呦!給大牛就沒必要了...
獻上一份源碼:
<?php namespace data\util; class Upload { /** * @var 文件信息think\file這個類 */ private $file; /** * @var 上傳圖片的目錄 */ private $path; /** * 上傳文件規則 */ private $validate =[ 'size' => 500000, 'ext' => 'jpg,png,gif,jpeg', ]; /** * 文件上傳 * * @param file think\File * @path 上傳的目錄 upload\goods * @return array */ public function move($file,$path) { $this->file = $file; // 獲取上傳的文件名 $fileName = $this->getFileName($path); // 文件保存的地址 $save = $this->getFilePath(); // 判斷保存的目錄是否存在 if(!file_exists($save)){ mkdir($save,777,true); } // 文件保存後的名字加類型 $image = $fileName['saveName'].'.'.$fileName['fileSuffix']; // 開始上傳 參數一:上傳路徑 參數二:文件名 $info = $file->validata($this->validate)->move($save,$image); // 獲取上傳後的文件名 $this->path = $save.'.'.$image; return (info) ? true : false; } /** * 配置保存路徑 * * @return array */ public function getFilePath($path) { return ROOT.'/'.$path; } /** * 獲取上傳文件的信息 名字,類型,類型 * * @return array */ public function getFileName() { // 獲取文件信息 $name = $this->file->getInfo('name'); // 問件名1.jpg 因此須要轉數組獲取 $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; } }
明天在補分紅不一樣大小的圖片入庫