分享到:

关于thinkphp5的上传、图片处理、多语言处理方法

日期:2017-01-09 14:35:00     阅读:2195     文章来源:源美网络     标签:深圳网站建设,深圳网站设计

首先来看上传和图片处理。tp5封装了常用的图片处理方法,可以很方便的直接使用。

1、首先通过composer安装图片处理库。composer的安装和使用参见这里

composer require topthink/think-image

下载完成后,目录位于vendor\topthink\think-image

2、上传

$file = request()->file('image');

$info = $file->validate(['size'=>9000000,'ext'=>'jpg,png,gif'])->move(ROOT_PATH . 'public' . DS . 'uploads');

if($info){

        // 成功上传后 获取上传信息

        // 输出 jpg

        //echo $info->getExtension();

        // 输出 20160820/42a79759f284b767dfcb2a0197904287.jpg

        echo GOD_ROOT."public/uploads/".$info->getSaveName()."";

        // 输出 42a79759f284b767dfcb2a0197904287.jpg

        //echo $info->getFilename(); 

}else{

// 上传失败获取错误信息

echo $file->getError();

}

3、图片处理以图片切割为例

public function cutface() {

$pic=str_replace(GOD_ROOT,'',input('face_images'));

$image = \think\Image::open($pic);

$newpic=md5(Session::get('admin_name')).'.'.$image->type();//设置新文件名

$image->crop(input('w'), input('h'),input('x'),input('y'))->save('public/uploads/'.date('Ymd').'/'.$newpic);//切割

$newpicpath=GOD_ROOT.'public/uploads/'.date('Ymd').'/'.$newpic;//设置新文件路径

db('user')->where('username',Session::get('admin_name'))->update(['facepic'=>$newpicpath]);//更新数据库

@unlink($pic);//删除原图

echo $newpicpath;

}

4、多语言

首先配置文件内:

'lang_switch_on' => true,

'lang_list' => ['zh-cn','en-us',],

在application/lang下建立en-us.php语言包,例如:

return [

    // 固定文字语言包

    '用户名'        => 'username',

    '密码'        => 'password',

    '你好'    =>'hello',

];

控制器内需要引入:

use think\Lang;

lang::set('再见', 'byebye','en-us');//模板内使用{:lang('再见')}

lang::set(['按钮1'=>'button1','按钮2'=>'button2'],'','en-us'); //批量设置

Lang::get('登录成功') //使用语言包

语言切换:

public function lang() {

switch ($_GET['lang']) {

case 'cn':

cookie('think_var', 'zh-cn');

break;

case 'en':

cookie('think_var', 'en-us');

break;

//其它语言

}

}

<A>英文</A>  -  <A>中文</A>

<script src="http://libs.baidu.com/jquery/1.10.2/jquery.js"></script>

<script>

$('.btn').click(function(){

    var data={'lang':$(this).attr('lang')}

    $.get("{:url('Index/lang')}",data,function(){

    location.reload();

    })

})

</script>



文章引用:http://www.szymweb.com/new/193.html

本站文章为深圳网站建设·源美网络原创策划,如有版权纠纷或者违规问题,请联系我们删除,谢谢!

上一篇: 降低网站跳出率的七个方法

下一篇: JS发送手机验证码倒计时特效

返回列表
最新案例
OUR ADVANTAGE WORKS

售后保障

承诺任何问题1小时内解决

数据备份

更安全、更高效、更稳定

价格公道精准

项目经理精准报价不弄虚作假

合作无风险

重合同讲信誉,无效全额退款