TP5上傳

說道上傳,圖片上傳是最常見的了。比如商城的商品列表頁,都有一堆商品提供大家看來讓大家參考。有一些網(wǎng)站的新聞都會有縮略圖讓大家預(yù)覽。所以為了方便需求,tp也專門做了一個上傳相關(guān)的功能。

關(guān)于模板方面還是要啰嗦一下

<form action="" method="post" enctype="multipart/form-data">
<input type="file"  name="image">
</form>

use think\Request;這個是不能少的,否則后續(xù)工作會變得非常麻煩。

tp5的上傳類是以對象作為基礎(chǔ)運作的,然后分別用對象內(nèi)的方法來執(zhí)行。

// 獲取表單上傳文件 image可以改名,但要保證一致。
$file = request()->file('image');
// 移動到框架應(yīng)用根目錄/public/uploads/ 目錄下public也可以改名,如果改成upload/asd則會自動創(chuàng)建兩個文件夾。
$info = $file->move(ROOT_PATH . 'public' . DS . 'uploads');

這樣運行的時候就可以發(fā)現(xiàn)圖片上傳進去了。
如果失敗可以用$file->getError()來查看錯誤。

然后可以調(diào)用一下三個方法

// 輸出文件名的后綴
echo $info->getExtension();
// 輸出文件的位置以及文件名。系統(tǒng)會自動穿件以時間為名的文件夾,然后輸出文件夾的名字和圖片的名字。
echo $info->getSaveName();
// 單純輸出文件的名字
echo $info->getFilename();

上傳的東西也需要驗證,大小和類型都需要監(jiān)控一下的。
驗證規(guī)則語句

validate(['size'=>1567118,'ext'=>'jpg,png,gif'])

size是控制文件的大小,ext是控制文件后綴名,tp5還有一個參數(shù)是type,這個是控制mime類型,有興趣的可以百度一下,個人還是推薦用ext。

這里再重新說一下怎么和post數(shù)據(jù)一起寫入數(shù)據(jù)庫。
$req->post(['image'=>文件的路徑]);

然后還要生成一個縮略圖。
圖像處理需要用composer下載一個類庫。

composer require topthink/think-image

然后打開上傳的圖片

$image = \think\Image::open(request()->file('image'));

然后可以執(zhí)行個方法。crop為裁剪,thumb為縮略,flip為翻轉(zhuǎn)。

常用的還是縮略圖。

$image->thumb(150, 150,\think\Image::THUMB_FIXED)->save(ROOT_PATH . 'public/thumb/'.md5(time()).'.jpg');

其中THUMB_FIXED可以替換,共有六種。
已此圖為原例:

logo.jpg

THUMB_SCALING.

logo1.jpg

默認的也是這個方法,單刷個人不太喜歡。因為他是保證原圖比例不變的情況下縮放,對后續(xù)排版可能會照成點麻煩。

THUMB_FILLED

logo2.jpg

這個會自動填充空白部分,保持縮略圖大小一致。還有一些其他的方法,我就不說明了,大家看效果就明白了。

THUMB_CENTER

logo3.jpg

THUMB_NORTHWEST

logo4.jpg

THUMB_SOUTHEAST

logo5.jpg

THUMB_FIXED

logo6.jpg

最后說一下水印功能

$image->water('/logo.png')->save(ROOT_PATH . 'public/thumb/'.md5(time()).'.jpg');

效果

logowater.jpg

下面的參數(shù)可以這是水印的位置。替換方法可以參考上邊的縮略圖。

logos.png

圖片上傳基本方法到此結(jié)束。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容