国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁(yè) php框架 ThinkPHP ThinkPHP如何實(shí)現(xiàn)七牛雲(yún)端儲(chǔ)存的上傳與轉(zhuǎn)碼功能

ThinkPHP如何實(shí)現(xiàn)七牛雲(yún)端儲(chǔ)存的上傳與轉(zhuǎn)碼功能

Apr 11, 2023 am 09:15 AM

隨著網(wǎng)路技術(shù)的不斷發(fā)展,雲(yún)端儲(chǔ)存的應(yīng)用越來(lái)越廣泛,尤其是視訊網(wǎng)站、音訊網(wǎng)站,這些網(wǎng)站為用戶提供的是線上觀看或線上收聽(tīng),而這一切的背後則是雲(yún)端存儲(chǔ)技術(shù)的支撐。七牛雲(yún)端儲(chǔ)存作為國(guó)內(nèi)領(lǐng)先的雲(yún)端儲(chǔ)存服務(wù)商,在網(wǎng)路產(chǎn)業(yè)擁有廣泛的應(yīng)用,尤其是在多媒體上傳、儲(chǔ)存、加速和分發(fā)等方面,都有著不錯(cuò)的表現(xiàn)。那麼,在本文中,我們將以ThinkPHP為例,介紹七牛雲(yún)端儲(chǔ)存的上傳和轉(zhuǎn)碼功能。

一、什麼是ThinkPHP

ThinkPHP是一個(gè)由中國(guó)開(kāi)發(fā)者創(chuàng)立的免費(fèi)開(kāi)源的PHP框架,其透過(guò)簡(jiǎn)單的配置和封裝,讓開(kāi)發(fā)人員可以快速的進(jìn)行應(yīng)用程式開(kāi)發(fā)。 ThinkPHP充分考慮了Web開(kāi)發(fā)的實(shí)際需求,並大力整合了開(kāi)源社群中的優(yōu)秀作品,充分滿足了Web開(kāi)發(fā)人員的需求。

二、什麼是七牛雲(yún)端儲(chǔ)存

七牛雲(yún)端存儲(chǔ),是一家快速、簡(jiǎn)單的雲(yún)端儲(chǔ)存服務(wù)供應(yīng)商,專(zhuān)注於為用戶提供可靠、高效、安全的雲(yún)端存儲(chǔ)服務(wù)。七牛雲(yún)端儲(chǔ)存可以提供多媒體文件的儲(chǔ)存、管理和分發(fā)服務(wù),用戶只需要向七牛雲(yún)端儲(chǔ)存上傳自己的多媒體文件,就可以透過(guò)七牛的CDN進(jìn)行加速,讓用戶能夠更快、更流暢的訪問(wèn)這些文件。

三、ThinkPHP如何實(shí)現(xiàn)七牛雲(yún)存儲(chǔ)的上傳

在ThinkPHP框架下使用七牛雲(yún)存儲(chǔ)的上傳功能,首先需要在項(xiàng)目下引入鑑權(quán)類(lèi)以及七牛雲(yún)存儲(chǔ)SDK,處理上傳時(shí)鑑權(quán)資訊:

require_once('Auth.php');
require_once('Config.php');
require_once('autoload.php');//引入七牛SDK

$accessKey?=?'可以從七牛后臺(tái)獲得';
$secretKey?=?'可以從七牛后臺(tái)獲得';

//鑒權(quán)對(duì)象
$auth?=?new?Auth($accessKey,?$secretKey);??

//生成上傳Token
$bucket?=?'要上傳的bucket名稱';//bucket名稱
$key?=?'要生成的文件名';//文件名稱
$options['returnBody']?=?'{"name":?$(fname),?"size":?$(fsize),?"hash":?$(etag),?"url":?"http://example.com/$(key)"}';//要返回的信息
$policy?=?array(
????'returnBody'??????=>??json_encode($options['returnBody']),//返回給客戶端的信息
????'saveKey'?????????=>??$key,//上傳的文件名
);
$upToken?=?$auth->uploadToken($bucket,?null,?3600,?$policy);//生成上傳Token

之後,在頁(yè)面中使用七牛雲(yún)端儲(chǔ)存的Javascript SDK,實(shí)作選擇檔案、上傳功能:

<script src="http://cdn.staticfile.org/plupload/2.1.1/plupload.full.min.js"></script>
<script type="text/javascript">
????//設(shè)置上傳參數(shù)
????var?uploader?=?new?plupload.Uploader({
????????browse_button:?'browse',?//觸發(fā)選擇文件對(duì)話框的按鈕
????????url:?'http://upload.qiniup.com/',?//服務(wù)器端的上傳頁(yè)面地址
????????flash_swf_url:?'path/of/plupload/Moxie.swf',//swf文件,用于解決跨域或不支持xhr2的瀏覽器上傳問(wèn)題
????????silverlight_xap_url:?'path/of/plupload/Moxie.xap',//silverlight文件,用于解決跨域或不支持xhr2的瀏覽器上傳問(wèn)題
????????chunk_size:?'4mb',//分塊上傳的塊大小
????????multi_selection:?false,//是否支持多選
????????filters:?{
????????????max_file_size:?'10mb',//最大文件大小
????????????mime_types:?[
??????????????{title:?"Image?files",?extensions:?"jpg,gif,png,jpeg,webp"},
??????????????{title:?"Video?files",?extensions:?"avi,mp4,mkv,flv,mov"},
??????????????{title:?"Audio?files",?extensions:?"mp3,wma,ogg,wav"},
????????????]//上傳文件類(lèi)型限制
????????},
????????multipart:?true,//是否將文件分塊上傳
????????multipart_params:?{//通常只能上傳原始二進(jìn)制文件到流中,而文件的信息必須存在于HTTP請(qǐng)求的上下文中
????????????key:?'文件名稱',
????????????token:?'{$uptoken}',
????????}
????});

????//綁定觸發(fā)上傳的事件
????uploader.bind('FilesAdded',?function(up,?files)?{
???????uploader.start();//當(dāng)文件被添加到上傳隊(duì)列后開(kāi)始上傳流程
????});

????//綁定上傳過(guò)程的事件
????uploader.bind('UploadProgress',?function(up,?file)?{
????????var?percent?=?file.percent;
????});

????//綁定上傳成功的事件
????uploader.bind('FileUploaded',?function(up,?file,?info)?{
????????var?result?=?JSON.parse(info.response);
????????console.log(result.url);//獲取上傳成功后的文件鏈接
????});

????//綁定上傳失敗的事件
????uploader.bind('Error',?function(up,?err)?{
????????if(err.code==-601){//文件格式不符合
???????????console.log('上傳失敗:文件格式不符合要求');
????????}else?if(err.code==-200){//文件太大
???????????console.log('上傳失?。何募笮〕鱿拗?);
????????}else{
???????????console.log(err.message);//其他失敗信息
????????}
????});

????//啟動(dòng)上傳
????uploader.init();
</script>

四、ThinkPHP如何使用七牛雲(yún)儲(chǔ)存的轉(zhuǎn)碼功能

對(duì)於一些影片網(wǎng)站、音訊網(wǎng)站等,使用者上傳的音訊視訊檔案往往需要進(jìn)行轉(zhuǎn)碼處理,使其符合網(wǎng)站的要求,這時(shí)候,就需要使用到七牛雲(yún)儲(chǔ)存的轉(zhuǎn)碼功能了,它可以自動(dòng)進(jìn)行音視頻轉(zhuǎn)碼,並且生成各種格式的播放鏈接,方便用戶在線觀看或在線收聽(tīng)。在ThinkPHP框架下,使用七牛雲(yún)端儲(chǔ)存的轉(zhuǎn)碼功能需要安裝composer包,使用composer安裝:

composer?require?qiniu/php-sdk

安裝完成後,可以透過(guò)PHP SDK來(lái)實(shí)現(xiàn)音訊轉(zhuǎn)碼,具體的轉(zhuǎn)碼操作可以參考:

require?__DIR__?.?'/vendor/autoload.php';
use?Qiniu\Auth;
use?Qiniu\Storage\BucketManager;
use?Qiniu\Storage\UploadManager;

$accessKey?=?'your?accessKey';
$secretKey?=?'your?secretKey';

//鑒權(quán)對(duì)象
$auth?=?new?Auth($accessKey,?$secretKey);

//空間名稱
$bucket?=?'your?bucket';

//文件保存鍵名
$key?=?'your?key';

//上傳文件的本地路徑
$filePath?=?'your?filepath';

//上傳的轉(zhuǎn)碼參數(shù)
$pfop?=?"avthumb/mp4";

//對(duì)于使用自己私有的codec庫(kù)時(shí)需要制定so路徑,?在<SoSdkPath>中填入so文件路徑。其他情況則沒(méi)必要,?該參數(shù)可以不填。
$encoding_codec_lib_path?=?null;

$urlbase64?=?\Qiniu\base64_urlSafeEncode($bucket?.?':'?.?$key);

//設(shè)置回調(diào)的URL地址
$notifyUrl?=?'http://yourdomain.com/callback.php';

//轉(zhuǎn)碼完成后回調(diào)指向的地址
$fops?=?$pfop.?'|saveas/'?.?\Qiniu\base64_urlSafeEncode("$bucket:$key")?.?'|notifyURL/'?.?$notifyUrl;

//初始化BucketManager
$config?=?new?\SDK\Qiniu\Config();
$config->zone?=?new?\SDK\Qiniu\Zone\Zhuanqu();
$bucketManager?=?new?BucketManager($auth,?$config);

//調(diào)用fetch方法拉取網(wǎng)絡(luò)上的一個(gè)資源,該資源用于轉(zhuǎn)碼,該方式不支持本地音視頻文件的轉(zhuǎn)碼處理
$fetchResult?=?$bucketManager->fetch($url,?$bucket,?$key,?$pfop);

if($fetchResult?!=?null){
????//上傳流程
????$uploadMgr?=?new?UploadManager($config);
????list($ret,?$err)?=?$uploadMgr->putFile($token,?$key,?$filePath?,null,$encoding_codec_lib_path);
????if?($err?!==?null)?{
????????echo?'上傳失?。?,?$err->message(),?"\n";
????}?else?{
????????echo?'上傳成功:',?$ret['key'],?"\n";

????????//持久化處理并等待處理結(jié)果
????????$persistentOps?=?$fops;//音視頻持久化處理的詳細(xì)指令,多個(gè)指令用;隔開(kāi)
????????$pipeline?=?'';//進(jìn)行轉(zhuǎn)碼的隊(duì)列名稱,不傳此參數(shù)將使用默認(rèn)隊(duì)列
????????$force?=?true;//強(qiáng)制覆蓋已有的同名文件

????????//調(diào)用持久化處理接口實(shí)現(xiàn)音視頻轉(zhuǎn)碼等持久化操作(不支持本地音視頻文件的轉(zhuǎn)碼處理)。
????????list($ret,?$err)?=?$bucketManager->persistentFop($bucket,?$key,?$persistentOps,?$pipeline,?$force);
????????if?($err?!==?null)?{
????????????var_dump($err);
????????}?else?{
????????????var_dump($ret);
????????}
????}
}

五、結(jié)語(yǔ)

希望透過(guò)本文的介紹,大家可以更深入了解到七牛雲(yún)儲(chǔ)存的上傳和轉(zhuǎn)碼功能,並且在ThinkPHP框架下實(shí)現(xiàn)七牛雲(yún)端儲(chǔ)存的上傳和轉(zhuǎn)碼操作。學(xué)習(xí)一門(mén)知識(shí),只有不斷實(shí)踐和總結(jié),才能真正的掌握和運(yùn)用自如。

以上是ThinkPHP如何實(shí)現(xiàn)七牛雲(yún)端儲(chǔ)存的上傳與轉(zhuǎn)碼功能的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)程式碼編輯軟體(SublimeText3)

熱門(mén)話題

Laravel 教程
1601
29
PHP教程
1502
276