日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > php >内容正文

php

php tp5上传图片到阿里云OSS

發(fā)布時(shí)間:2024/3/12 php 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php tp5上传图片到阿里云OSS 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.登錄阿里云OSS管理控制臺(tái)創(chuàng)建Bucket

(寫(xiě)入名稱,這個(gè)我已經(jīng)創(chuàng)建過(guò)了,我接下來(lái)會(huì)用到,注意Endpoint,后面會(huì)用到)

為了方便管理圖片,可以在Bucket多建目錄進(jìn)行存放:

2.在tp5的config中做以下配置

//阿里云OSS配置'alioss' =>['KeyId' => 'LTAI4Frk39sKAiJe3sRSKg4w', //AccessKey ID'KeySecret' => 'nV2XfBuTEFUUYfT2gHnFMUAgwwCinQ', //Access Key Secret'EndPoint' => 'oss-cn-beijing.aliyuncs.com', //外網(wǎng)訪問(wèn)節(jié)點(diǎn)'Bucket' => 'lten', //Bucket名稱],

AccessKey ID和 Access Key Secret可以在這里查看


3.到阿里云對(duì)象存儲(chǔ)OSS官網(wǎng)文檔,下載PHP的demo,下載后解壓重命名文件夾為aliyun-oss,我放到了tp5的extend目錄下面:

4.我定義了一個(gè)Common類,里面有上傳圖片的方法

use \think\Controller;use think\Image;require_once APP_PATH . '/../extend/aliyun-oss/autoload.php';use OSS\Core\OssException;use OSS\OssClient;class Common extends Controller{/***上傳圖片的接口*/public function uploadtest(){$file = request()->file('file');$res = [];if($file){$res = self::uploadFile('banner',$file);if($res['code']==200){//圖片完整地址$headimg = $res['data'];//業(yè)務(wù)邏輯省略......}else{return $this->error('上傳失敗');}return json($res);}}//上傳圖片到阿里云public static function uploadFile($mulu,$file) {$resResult = Image::open($file);try {$KeyId = config('alioss.KeyId');$KeySecret = config('alioss.KeySecret');$EndPoint = config('alioss.EndPoint');$Bucket = config('alioss.Bucket');//實(shí)例化$ossClient = new OssClient($KeyId, $KeySecret, $EndPoint);//sha1加密 生成文件名 連接后綴$fileName = $mulu.'/'.sha1(date('YmdHis', time()) . uniqid()) . '.' . $resResult->type();//執(zhí)行阿里云上傳$result = $ossClient->uploadFile($Bucket, $fileName, $file->getInfo()['tmp_name']);//圖片地址:$result['info']['url']$arr = ['code'=>200,'msg'=>'上傳成功','data'=>$result['info']['url']];} catch (OssException $e) {$arr = ['code'=>0,'msg'=>$e->getMessage(),'data'=>''];}return $arr;}}

5.前臺(tái)

<div class="layui-upload" id="upload-thumb"><label class="layui-form-label">縮略圖</label><button type="button" class="layui-btn" id="thumb">上傳圖片</button><div class="layui-upload-list"><label class="layui-form-label"></label><img class="layui-upload-img" id="demo1" width="150" height="150" {notempty name="$article.thumb"}src="{$article.thumb}"{/notempty}>{notempty name="$article.thumb"}<input type="hidden" name="thumb" value="{$article.thumb}">{/notempty}<p id="demoText"></p></div> </div> //上傳圖片接口layui.use('upload', function(){var upload = layui.upload;//執(zhí)行實(shí)例var uploadInst = upload.render({elem: '#thumb' //綁定元素,url: "{:url('common/uploadtest')}" //上傳接口,data:{use:'article_thumb'},done: function(res){//上傳完畢回調(diào)if(res.code == 200) {//前臺(tái)顯示預(yù)覽圖$('#demo1').attr('src',res.data);$('#upload-thumb').append('<input type="hidden" name="thumb" value="'+ res.data +'">');} else {layer.msg(res.msg);}},error: function(){//請(qǐng)求異?;卣{(diào)//演示失敗狀態(tài),并實(shí)現(xiàn)重傳var demoText = $('#demoText');demoText.html('<span style="color: #FF5722;">上傳失敗</span> <a class="layui-btn layui-btn-mini demo-reload">重試</a>');demoText.find('.demo-reload').on('click', function(){uploadInst.upload();});}});});

總結(jié)

以上是生活随笔為你收集整理的php tp5上传图片到阿里云OSS的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。