最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

ThinkPHP5.0 圖片上傳生成縮略圖實(shí)例代碼說(shuō)明

 更新時(shí)間:2018年06月20日 14:28:52   作者:lingchen8  
這篇文章主要介紹了ThinkPHP5.0 圖片上傳生成縮略圖實(shí)例代碼說(shuō)明,需要的朋友可以參考下

很多朋友遇到這樣一個(gè)問(wèn)題,圖片上傳生成縮略圖,很多人在本機(jī)(win)測(cè)試成功,上傳到linux 服務(wù)器后錯(cuò)誤。

我也遇到同樣的問(wèn)題。網(wǎng)上一查,有無(wú)數(shù)的人說(shuō)是服務(wù)器臨時(shí)文件目錄權(quán)限問(wèn)題。

幾經(jīng)思考后,發(fā)現(xiàn)并非如此。

其根本的原因是,保存到變量的信息是之前的,之后又move移動(dòng)到了自己指定的目錄下,同時(shí)臨時(shí)文件已經(jīng)不存在。所以再生成縮略圖的時(shí)候,需要open的,文件地址應(yīng)該是自己定義的目錄+文件名。然而很多實(shí)例文檔中,還是使用的move 之前的信息。

又加之在win服務(wù)器下,move后,指定目錄已生成了文件,同時(shí)臨時(shí)文件未被刪除。所以能用move之前的信息生成縮略圖。

希望不多的言語(yǔ)能幫助遇到同樣問(wèn)題的你。

下面在通過(guò)實(shí)例代碼給大家介紹ThinkPHP5.0 圖片上傳生成縮略圖的方法。

代碼如下所示:

<?php
namespace app\common\controller;
use app\common\model\Goods;
class Tools
{
 public static function upload_goods_img($whereName="", $width="", $height="")
 {
 // 打開圖片的相對(duì)路徑
 $imgpath = config('img_path');
 // 絕對(duì)路徑
 $imgRootPath = config('imgRootPath');
 $storeId = '自定義';
 $merchantId = '自定義';
 $old_filename = $storeId . $merchantId . time();
 $filename = $storeId . $merchantId . time() . mt_rand(1000, 9999);
 $type = Goods::upload($whereName, $old_filename);
 if($type) 
 {
  $savepath = $imgRootPath . '/' . $whereName . '/' . $filename . '.' . $type;
  $thumbfile = $filename . '.' . $type;
  $thumbName = $imgpath . '/' . $whereName . '/' . $thumbfile;
  $image = \think\Image::open($imgpath . '/'. $whereName .'/' . $old_filename . '.' . $type);
  $image->thumb($width, $height, \think\Image::THUMB_FIXED)->save($thumbName);
  $data = [
  'access_url' => $imgRootPath . '/' . $whereName . '/' . $filename . '.' . $type,
  'filename' => $thumbfile,
  ];
  return $data;
 }
 } 
}

調(diào)用:

class Goods
{
 public function upload_sku()
 {
 $whereName = 'goods/sku';
 $width = 750;
 $height = 750;
 $data = Tools::upload_goods_img($whereName,$width, $height);
 return returnJson(1, '上傳成功', $data);;
 }
}

PS:下面在看一段代碼tp5中上傳圖片方法,并生成相應(yīng)縮略圖的方法

//接收上傳文件的name
$file = $this->_req->file("upload_head_image");
//將上傳的文件移動(dòng)到public/uploads/user
$info = $file->validate(['size'=>5242880,'ext'=>'jpg,jpeg,png'])->move(ROOT_PATH . 'public' . DS . 'uploads' . DS . 'user');
if($info){
 $pic = new \app\home\model\User();
 $pic_url = $pic->thumbImage($file,$info);
 $user['portrait'] = 'uploads/user/'.$pic_url;
 //print_r($pic_url);exit();
 }

///model中代碼如下
 /**
 * [生成用戶頭像縮略圖,180、50]
 * @param [type] $file [獲取上傳文件$_FILE]
 * @param [type] $pic [上傳文件的路徑]
 * @return [type] [返回處理后的文件路徑]
 */
 public function thumbImage($file,$pic){
 $image = \think\Image::open($file);
 $getSaveName = str_replace('\\','/',$pic->getSaveName());
$portrait_thumbnail_180= 'uploads/user/'.str_replace($pic->getFilename(),'180_'.$pic->getFilename(),$getSaveName);
$image->thumb(180,180,\think\Image::THUMB_CENTER)->save(ROOT_PATH . 'public' . DS . $portrait_thumbnail_180,null,100,true);
 $portrait_thumbnail_80 = 'uploads/user/'.str_replace($pic->getFilename(),'80_'.$pic->getFilename(),$getSaveName);
 $image->thumb(80,80,\think\Image::THUMB_CENTER)->save(ROOT_PATH . 'public' . DS . $portrait_thumbnail_80,null,100,true);
 $portrait_thumbnail_50 = 'uploads/user/'.str_replace($pic->getFilename(),'50_'.$pic->getFilename(),$getSaveName);
 $image->thumb(50,50,\think\Image::THUMB_CENTER)->save(ROOT_PATH . 'public' . DS . $portrait_thumbnail_50,null,100,true);
if ($image) {
  return $getSaveName;
 }
 }

總結(jié)

以上所述是小編給大家介紹的ThinkPHP5.0 圖片上傳生成縮略圖實(shí)例代碼說(shuō)明,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • 詳解PHP swoole process的使用方法

    詳解PHP swoole process的使用方法

    這篇文章主要為大家詳細(xì)介紹了詳解PHP swoole process的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • 摘自織夢(mèng)CMS中的圖片處理類

    摘自織夢(mèng)CMS中的圖片處理類

    這篇文章主要介紹了摘自織夢(mèng)CMS中的圖片處理類,通過(guò)面向?qū)ο蟮姆绞捷^為詳細(xì)的實(shí)現(xiàn)了php針對(duì)圖片的縮略圖生成及水印添加等操作技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-08-08
  • yii的CURD操作實(shí)例詳解

    yii的CURD操作實(shí)例詳解

    這篇文章主要介紹了yii的CURD操作技巧,以實(shí)例形式詳細(xì)分析了基于yii框架的增刪改查的具體用法,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2014-12-12
  • laravel5.1 ajax post 傳值_token示例

    laravel5.1 ajax post 傳值_token示例

    今天小編就為大家分享一篇laravel5.1 ajax post 傳值_token示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-10-10
  • thinkPHP3.2使用RBAC實(shí)現(xiàn)權(quán)限管理的實(shí)現(xiàn)

    thinkPHP3.2使用RBAC實(shí)現(xiàn)權(quán)限管理的實(shí)現(xiàn)

    這篇文章主要介紹了thinkPHP3.2使用RBAC實(shí)現(xiàn)權(quán)限管理的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • ZendFramework2連接數(shù)據(jù)庫(kù)操作實(shí)例

    ZendFramework2連接數(shù)據(jù)庫(kù)操作實(shí)例

    這篇文章主要介紹了ZendFramework2連接數(shù)據(jù)庫(kù)操作,結(jié)合完整實(shí)例形式分析了ZendFramework2連接數(shù)據(jù)庫(kù)的具體步驟、配置方法、相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2017-04-04
  • php屏蔽錯(cuò)誤及提示的方法

    php屏蔽錯(cuò)誤及提示的方法

    在本篇文章里小編給大家分享的是關(guān)于php屏蔽錯(cuò)誤及提示的方法,需要的朋友們可以學(xué)習(xí)下。
    2020-05-05
  • PHP實(shí)現(xiàn)爬蟲爬取圖片代碼實(shí)例

    PHP實(shí)現(xiàn)爬蟲爬取圖片代碼實(shí)例

    這篇文章主要介紹了PHP實(shí)現(xiàn)爬蟲爬取圖片代碼實(shí)例,有實(shí)際的代碼例子,感興趣的同學(xué)可以嘗試下
    2021-03-03
  • PHP微信H5支付開發(fā)實(shí)例

    PHP微信H5支付開發(fā)實(shí)例

    這篇文章主要為大家詳細(xì)介紹了PHP微信H5支付開發(fā)實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • PHP Yii框架之表單驗(yàn)證規(guī)則大全

    PHP Yii框架之表單驗(yàn)證規(guī)則大全

    Yii是一個(gè)基于組件的高性能PHP框架,用于開發(fā)大型Web應(yīng)用。Yii采用嚴(yán)格的OOP編寫,并有著完善的庫(kù)引用以及全面的教程,本文給大家介紹php yii框架之表單驗(yàn)證規(guī)則大全,感興趣的朋友一起學(xué)習(xí)吧
    2015-11-11

最新評(píng)論

许昌市| 襄汾县| 华蓥市| 壤塘县| 西乌珠穆沁旗| 胶南市| 平塘县| 炎陵县| 府谷县| 文水县| 梁山县| 隆回县| 内江市| 永兴县| 藁城市| 德阳市| 南康市| 新丰县| 闸北区| 保德县| 梁河县| 英吉沙县| 兴国县| 平泉县| 文安县| 岑溪市| 静安区| 和顺县| 天津市| 玛曲县| 灵武市| 上高县| 黎平县| 巫溪县| 肇庆市| 达拉特旗| 益阳市| 嘉禾县| 老河口市| 疏附县| 封开县|