OSS 视频存储
我这里加了 封面图片 可以不理睬! 我没有存oss. 阿里的OSS 自己可以去官网下载 我这里放到 Vendor 下的. 1 # 注意这里OSS中 请设置 存储空间名称为公共的 才能直接使用这里返回的地址进行播放 不然 需要加密呗
use OSS\Core\OssException; # 必须
use OSS\OssClient; # 必须
class ClasstimeAction extends CommonAction
{
public function add_sub()
{
header('Content-type:text/html,charset:ust-8');
$file = $_FILES['file'];
$filTtype = $file['name'];//文件名
$fileName = substr($filTtype,strrpos($filTtype,'.'));
$filetype = array('.jpg', '.jpeg', '.gif', '.bmp', '.png');
$str = rand(1,99999);
$useName = date('Ymd').$str;
$picNewName = $useName.$fileName;
$upload_path = "../Public/Rbac/file/";
if (!in_array($fileName, $filetype))
{
$this->success("图片格式错误","__APP__/Public/index");
exit;
}
if(!is_uploaded_file($file['tmp_name'])){
$this->success("请使用正确途径上传图片","__APP__/Public/index");
exit;
}
if(!move_uploaded_file($file['tmp_name'],$upload_path.$picNewName)){
$this->success("图片存储失败 请重新上传","__APP__/Public/index");
exit;
} #视频
$video = $_FILES['video'];
$videoTtype = $video['name'];//文件名
$videoName = substr($videoTtype,strrpos($videoTtype,'.'));
$videotype = array('.mp4'); // 自定 我这随便写一个
$str = rand(1,99999);
$useName = date('Ymd').$str;
$videoNewName = $useName.$videoName;
$upload_path = "../Public/Rbac/video/";
if (in_array($videoName, $videotype)) {
if (is_uploaded_file($video['tmp_name'])) {
if (move_uploaded_file($video['tmp_name'],$upload_path.$videoNewName)) { vendor('OSS.autoload'); // 引入 oss上传类
$accessKeyId = "xxxxxxxxxx"; //去阿里云后台获取秘钥
$accessKeySecret = "xxxxxxxxxx"; //去阿里云后台获取秘钥
$endpoint = "xxxxxxxxxx"; //你的阿里云OSS地址 $object = date('Y-m-d').'/'.$videoTtype; //想要保存文件的名称
$file = $upload_path.$videoNewName; //文件路径,必须是本地的。
$bucket = "xxxxxxxxxx"; // 存储空间。
try{
$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
$getOssInfo = $ossClient->uploadFile($bucket, $object, $file);
if($getOssInfo['info']['http_code'] == 200){
unlink($file); # 上传成功删除本地文件
$curl = $getOssInfo['info']['url'];
# 添加数据库
$time = $_POST['classsc'].':'.$_POST['classsc1'];
$data['addresspic'] = $picNewName;
$data['addressvideo'] = $curl;
$data['classtime'] = $_POST['classtime'];
$data['classjj'] = $_POST['classjj'];
$data['classsc'] = $time;
$data['cid'] = $_REQUEST['code'];
$data['type'] = $_REQUEST['testSee'];
$data['syrenqun'] = $_REQUEST['classshiyin'];
$data['status'] = 1;
$data['ctime'] = time();
$data['user'] = $_SESSION['name'];
D("classtime")->add($data);
$this->success("操作成功");
}else{
$this->error("上传OSS异常");
}
// 抛出异常
} catch(OssException $e) {
printf(__FUNCTION__ . ": FAILED\n");
printf($e->getMessage() . "\n");
return;
} }else{
$this->success("视频存储失败 请重新上传","__APP__/Public/index");
exit;
}
}else{
$this->success("请使用正确途径上传视频","__APP__/Public/index");
exit;
}
}else{
$this->success("请上传正确的视频格式 支持格式(mp4)","__APP__/Public/index");
exit;
}
}
}
OSS 视频存储的更多相关文章
- iOS使用阿里云OSS对象存储 (SDK 2.1.1)
最近项目中用到了阿里云OSS对象存储,用来存储APP中图片.音频等一些数据.但坑爹的阿里云居然在11月20日将SDK版本更新到了2.1.1,然而网上给出的教程都是1.*版本的(针对iOS),两个版本所 ...
- 架构师小跟班:教你从零开始申请和配置七牛云免费OSS对象存储(不能再详细了)
背景 之前为了练习Linux系统使用,在阿里云上低价买了一台服务器(网站首页有活动链接,传送门),心里想反正闲着也是闲着,就放了一个网站上去.现在随着数据越来越多,服务器空间越来越吃紧,我就考虑使用七 ...
- phpcmsv9 阿里云OSS云存储整合教程
该教程算不上是phpcmsv9阿里云oss插件,所以整个修改及其代码覆盖前请一定记得备份.还有一点就是后台发布文章时上传的附件还是会保存在你的服务器上,基于以下原因:1.个人的需求是前台页面需要使用t ...
- 腾讯云点播视频存储(Web端视频上传)
官方文档 前言 所谓视频上传,是指开发者或其用户将视频文件上传到点播的视频存储中,以便进行视频处理.分发等. 一.简介 腾讯云点播支持如下几种视频上传方式: 控制台上传:在点播控制台上进行操作,将本地 ...
- .Net程序测试阿里云OSS开放存储服务
阿里云官网有提供OSS相关的操作API文档和.Net程序的 SDK,也可以在这里下载OSS相关文件 但是API文档里面的都是通过http请求和响应的消息来描述如何操作OSS的 而一般在程序中需要的是O ...
- 阿里云OSS的 存储包、下行流量包、回流流量包 三者有啥关系
阿里云OSS的 存储包.下行流量包.回流流量包 三者有啥关系 一.总结 一句话总结: 你把文件放 oss,会占用存储空间,存储包覆盖这部分费用 你访问存储在 oss 里面的文件,会产生下行流量,就是从 ...
- Java使用阿里云OSS对象存储上传图片
原 Java使用阿里云OSS对象存储上传图片 2017年03月27日 10:47:28 陌上桑花开花 阅读数 26804更多 分类专栏: 工作案例总结 版权声明:本文为博主原创文章,遵循CC 4.0 ...
- 22.Java面试学习平台-整合OSS对象存储
SpringCloud实战项目全套学习教程连载中 PassJava 学习教程 简介 PassJava-Learning项目是PassJava(佳必过)项目的学习教程.对架构.业务.技术要点进行讲解. ...
- 在搞OSS对象存储中发现了自身的一些不足
最近在搞OSS对象存储,发现了自身的一些不足,趁着有空在此做个总结,希望能够帮助到大家!!! 首先解释下OSS,Object Storage Service(对象存储服务),一般的云公司,都会提供OS ...
随机推荐
- 201. Bitwise AND of Numbers Range (Bit)
Given a range [m, n] where 0 <= m <= n <= 2147483647, return the bitwise AND(按位与) of all nu ...
- LinearLayout 线性布局
android:orientation 设置布局管理器内组件的排列方式,可设置为 horizontal (水平排列).vertical (垂直排列) android:gravity 设置布局管理器内组 ...
- Codeforces Beta Round #27 (Codeforces format, Div. 2)
Codeforces Beta Round #27 (Codeforces format, Div. 2) http://codeforces.com/contest/27 A #include< ...
- @ResponseBody使用须知
-------------------siwuxie095 @ResponseBody 使用须知 使用 @ResponseBody 注解映射响应体 @ResponseBody 注解可被应用于方法上,标 ...
- c#: List.Sort()实现稳固排序(stable sort)
1. 源起: KV 7.0加入列表管理功能,处理排序问题时,对空列表执行按大小.日期.长度排序发现,其中次序会发生改变,令人纳闷. 没天理呀,不应该啊!List.Sort()方法,它为什么? 对此问题 ...
- echarts横向柱状图如果想打开网址
代码: var data = eval(data); var xList = new Array(); var yList = new Array(); var urlList = new Array ...
- python中if not x: 和 if x is not None: 和 if not x is None的使用和区别
代码中经常会有变量是否为None的判断,有三种主要的写法: 第一种是`if x is None`: 第二种是 `if not x:`: 第三种是`if not x is None`(这句这样理解更清晰 ...
- Bootstrap(11)列表组面板和嵌入组件
一.列表组组件列表组组件用于显示一组列表的组件.//基本实例 <ul class="list-group"> <li class="list-group ...
- js第三天知识点 循环
/*for(重点) *while *do..while * *3种循环的区别: *for 主要适用于 明确循环次数的 循环 *while 适用于 不明确循环次数的循环 *do..while 适用于 ...
- 有关JVM处理Java数组方法的思考
在Java中,获取数组的长度和String的长度是两种不同的方法,这引起了本文作者的一番思考.本文从JVM的角度,探讨了Java数组在JVM中是什么对象,有哪些成员,以及声明方法. 作者:jarfie ...