Laravel框架实现点播上传阿里云功能
发布:smiling 来源: PHP粉丝网 添加日期:2022-05-15 11:59:43 浏览: 评论:0
这篇文章主要介绍了Laravel框架实现点播上传阿里云功能,本文给大家分享一段完整的实例代码,代码简单易懂,需要的朋友可以参考下。
1、确认框架中安装了第三方alibabacoud控件
实现代码如下
上传过程中遇到任务问题,可以进行留言
- <?php
- namespace App\Api\xxxx\Controllers;
- use DB;
- use Illuminate\Http\Request;
- use AlibabaCloud\Tea\Utils\Utils;
- use AlibabaCloud\SDK\Vod\V20170321\Vod;
- use AlibabaCloud\SDK\Vod\V20170321\Models\DeleteImageRequest;
- use AlibabaCloud\SDK\Vod\V20170321\Models\GetPlayInfoRequest;
- use AlibabaCloud\SDK\Vod\V20170321\Models\DeleteVideoRequest;
- use AlibabaCloud\SDK\Vod\V20170321\Models\GetImageInfoRequest;
- use AlibabaCloud\SDK\Vod\V20170321\Models\CreateUploadVideoRequest;
- use AlibabaCloud\SDK\Vod\V20170321\Models\CreateUploadImageRequest;
- use Darabonba\OpenApi\Models\Config;
- use OSS\OssClient;
- use AlibabaCloud\Tea\Tea;
- class CommonController extends XXController
- {
- //视频点播上传
- public function uploadVideo($fileName,$title)
- {
- $title = explode('.',$param['title']);
- $fileName = $param['fileName'];
- if($title[1] == 'mp4') {
- $cateId = 3479;//分类ID,阿里云点播可以设置
- }
- $client = self::createClient("xxx", "xxx");//根据申请的值放入
- $createUploadVideoRequest = new CreateUploadVideoRequest([
- 'Action' => 'CreateUploadVideo',//请求的上传函数
- "fileName" => $fileName,//文件名称
- "cateId" => $cateId,//类型名称
- 'title' => $param['title'],//标题
- ]);
- $createRes = $client->createUploadVideo($createUploadVideoRequest);
- $videoId = $createRes->body->videoId; //获取视频播放地址需要的参数
- $formats = $title[1];
- //base64解码
- $uploadAddress = json_decode(base64_decode($createRes->body->uploadAddress), true);
- $uploadAuth = json_decode(base64_decode($createRes->body->uploadAuth), true);
- // 使用UploadAuth和UploadAddress初始化OSS客户端
- $ossClient = $this->init_oss_client($uploadAuth, $uploadAddress);
- $localFile = $fileName; // 需要上传到VOD的本地视频文件的完整路径 改这个有效果
- // 上传文件,注意是同步上传会阻塞等待,耗时与文件大小和网络上行带宽有关
- $result = $this->upload_local_file($ossClient, $uploadAddress, $localFile);
- //$result = multipart_upload_file($ossClient, $uploadAddress, $localFile);
- $arr = $this->playinfo($videoId,$formats);
- $data = Utils::toArray(Tea::merge($arr->body));
- $brr = array();
- $brr['VideoId'] = $data['VideoBase']['VideoId'];//视频id
- $brr['PlayURL'] = $data['PlayInfoList']['PlayInfo'][0]['PlayURL'];//返回的播放地址
- return $brr;
- }
- public function init_oss_client($uploadAuth, $uploadAddress)
- {
- $ossClient = new OssClient($uploadAuth['AccessKeyId'], $uploadAuth['AccessKeySecret'], $uploadAddress['Endpoint'],
- false, $uploadAuth['SecurityToken']);
- $ossClient->setTimeout(86400*7); // 设置请求超时时间,单位秒,默认是5184000秒, 建议不要设置太小,如果上传文件很大,消耗的时间会比较长
- $ossClient->setConnectTimeout(10); // 设置连接超时时间,单位秒,默认是10秒
- return $ossClient;
- }
- }
Tags: Laravel点播上传阿里云
- 上一篇:laravel修改用户模块的密码验证实现
- 下一篇:最后一页
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)