阿里云视频点播
記錄一下服務端處理
注意一下坑點,使用官方SDK文件時,記得把以下文件的printLog注釋掉。不注釋雖然能上傳成功,但一直報服務器錯誤
\vendor\voduploadsdk\uploader\AliyunVodUtils.php
\voduploadsdk\uploader\AliyunVodUploader.php
這兩個文件的printLog注釋掉,最好全SDK搜索一篇
另一種方法
layui前端上傳 + 后端處理
<div style="margin-left: 30px"><button type="button" class="layui-btn" id="videoUploadBtn"><i class="layui-icon"></i>上傳視頻</button><input type="text" id="video" value=""> </div> <link href="/public/js/layui/css/layui.css" type="text/css" rel="stylesheet" /> <script src="/public/js/layui/layui.all.js"></script> <script>layui.use('upload', function () {var $ = layui.jquery, upload = layui.upload;upload.render({elem: '#videoUploadBtn', url: '{:url(\'admin/asset/videoUpload\')}' //改成你自己的上傳接口, accept: 'video' //視頻, done: function (res) {console.log(res);// if (res == '失敗') {// layer.msg('上傳失敗');// return;// }// $('#video').val(res);// layer.msg('上傳成功');}});}); </script> public function videoUpload(){// 上傳文件$request = Request::instance();$file = $request->file('file');//獲取文件$info = $file->move('./upload/asset');$getSaveName = str_replace("\\", "/", $info->getSaveName());$fileSavePath = $_SERVER['DOCUMENT_ROOT'] . '/upload/asset/'. $getSaveName;$filesystems = Config('filesystems');$vodConfig = $filesystems['disks']['aliyun_vod'] ?? [];require_once WEB_ROOT.'vendor/voduploadsdk/Autoloader.php';try{$uploader = new AliyunVodUploader($vodConfig['accessKeyId'], $vodConfig['accessKeySecret'], 'eu-central-1');$uploadVideoRequest = new UploadVideoRequest($fileSavePath, $getSaveName);$uploadVideoRequest->setStorageLocation('outin-c39706225f1111ec9b9800163e00865b.oss-eu-central-1.aliyuncs.com');$userData = array("MessageCallback"=>array("CallbackURL"=>""),"Extend"=>array("localId"=>"", "test"=>""));$uploadVideoRequest->setUserData(json_encode($userData));$video_id = $uploader->uploadLocalVideo($uploadVideoRequest);//初始化視頻客戶端$profile = DefaultProfile::getProfile('eu-central-1', $vodConfig['accessKeyId'], $vodConfig['accessKeySecret']);$client = new DefaultAcsClient($profile);$request = new GetPlayInfoRequest();$request->setVideoId($video_id);$request->setAcceptFormat('JSON');$videoInfo = $client->getAcsResponse($request);$videoInfo1 = json_decode(json_encode($videoInfo),true);// error_log(print_r($videoInfo1, true)."\n", 3, 'data.log');// error_log(print_r($videoInfo1['PlayInfoList']['PlayInfo'][0]['PlayURL'], true)."\n", 3, 'data.log');$video_url = $videoInfo1['PlayInfoList']['PlayInfo'][0]['PlayURL'] ?? '';echo $video_url;exit();}catch (\Exception $e){return '';}}總結
- 上一篇: nginx wsgi django 建站
- 下一篇: SOLIDWORKS——参数化建模