Tp3如何實現本地視訊檔案上傳到七牛雲

燚軒科技發表於2018-07-10

  對於七牛雲的使用,估計有些剛接觸開發的技術人員還不太清楚,那麼更不要說如何實現本地視訊上傳到七牛雲轉儲了,其實這個技術並沒有想象中的那麼困難,下面就來跟大家詳細介紹一下流程:

  1、首先我們要先去尋找七牛雲的SDK網址,開啟後直接下載就行了;

  2、下載完成之後我們把它放在tp框架的./ThinkPHP/Extend/Vendor/目錄下;

  3、完成之後,前期的準備工作就完成了,接下來就是自己上手寫程式碼了:

  首先肯定是先在模板部分建立一個form表單:

  *視訊上傳:

  我們就提交到News控制器裡的do_add這個方法裡邊:

  public function do_add(){

  if(!empty($_FILES['video']['name'])){ //首先判斷資料是否為空

  import('ORG.Net.UploadFile');

  $upload = new UploadFile();// 例項化上傳類

  $upload->maxSize = 31457281;// 設定附件上傳大小

  $upload->allowExts = array('mp4');// 設定附件上傳型別 如果是MP3的話改為mp3 就ok

  $upload->savePath = './Public/Uploads/video/';// 設定附件上傳目錄(先把檔案上傳到本地伺服器上)

  //$upload->saveName = I('uid').'_'.time();// 設定附件上傳目錄

  if(!$upload->upload()) {// 上傳錯誤提示錯誤資訊

  $this->error($upload->getErrorMsg());

  }else{// 上傳成功 獲取上傳檔案資訊

  $info = $upload->getUploadFileInfo();

  }

  //匯入類自動載入器

  require_once'./ThinkPHP/Extend/Vendor/qiniusdk/autoload.php';

  //七牛的鑰密

  $accessKey = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';

  $secretKey = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';

  $bucket = 'haha'; //這個是你上傳的空間

  $savepath = "http://www.xxxxxxxxxx.com/";//這是你七牛的路徑

  $auth = new Auth($accessKey, $secretKey);

  //可以對轉碼後的檔案進行使用saveas引數自定義命名,當然也可以不指定檔案會預設命名並儲存在當間

  $mediaid = time().uniqid();

  $savekey = \Qiniu\base64_urlSafeEncode(haha:'.$mediaid.'.mp4');

  $fops = $fops.'|saveas/'.$savekey;

  $policy = array(

  'persistentOps' => $fops,

  );

  $uptoken = $auth->uploadToken($bucket, null, 3600, $policy);

  //上傳檔案的本地路徑

  $filePath = './Public/Uploads/video/'.$info[0]['savename'];

  $key = $mediaid.'.mp4';

  $uploadMgr = new UploadManager();

  list($ret, $err) = $uploadMgr->putFile($uptoken, $key, $filePath);

  if ($err !== null) {

  $dataname["info"]="error";

  } else {

  $savename=$ret['key'];

  $file = $savepath.$savename;

  $dataname["info"]=$file;

  }

  }else{

  $dataname["info"]="error";

  }

  unlink($filePath);//上傳成功後刪除本地伺服器上的檔案

  $audio=D("audio");

  $wh['aid']=I("aid");

  $data['video_path']=$file;

  $re=$audio->add($data); //路徑儲存到資料表

  if($re){

  success('新增成功',U('News/newslist'));

  }else{

  error("新增失敗");

  }

  //echo json_encode($dataname); //返回資料結構自行封裝

  }

  到這裡執行之後還是出錯 找不到Auth這個類,摸索了一會兒才發現少了名稱空間,加到控制器頂部即可:

  use Qiniu\Storage\UploadManager;

  use Qiniu\Auth;

  執行後正常。

  至此已經上傳完畢,上傳完成到自己的七牛看一看就OK!需要跟大家說明的是MP3和MP4類似,只需要把程式碼中的MP4換為MP3即可,那麼現在大家可以開始動手嘗試一下了,如果還存在疑問的話,可以留言,我們收到後會第一時間回覆。本文由專業的鄭州app開發公司燚軒科技整理髮表,如需轉載請註明出處。

相關文章