1、首先创建一个七牛云帐号,完成后,添加对象存储;
2、创建成功后,右上角“密钥管理 查看秘钥,找到AK、SK;
3、打开thinkphp的配置文件,将此代码加入
'CONFIG_QINIU' =>
array (
'accessKey' => '你的AK',
'secretKey' => '你的SK',
'domain' => '融合CDN域名',
'bucket' => '存储文件的空间名称',
),
4、HTML页面代码
<tr style="height: 100px;">
<th width="70">封面视频 </th>
<td>
<button type="button" class="layui-btn" id="cover">
<i class="layui-icon"></i>视频上传
</button>
<input type="text" name="cover_file_name" value="" readonly="readonly" style="height: 30px; line-height: 30px;" />
<input type="hidden" name="cover_file_url" value="" />
<button type="button" onclick="cancel_1();" class="layui-btn layui-btn-warm">视频取消</button>
<div>
windows:仅允许上传 mp4视频,视频编码H264,文件大小不超过 6M。
</div>
</td>
</tr>
HTML 页面截图
5、上传文件JS代码
<!--- 封面视频 --->
<script type="text/javascript">
layui.use('upload', function(){
var upload = layui.upload;
//执行实例
var uploadInst = upload.render({
elem: '#cover', //绑定元素
exts: 'mp4', // 允许上传的文件后缀
size: 1024*6, // 文件大小,单位KB
accept: 'file', //普通文件
url: "{:U('AdminPage/uploadFile')}", //上传接口
choose: function(obj){
// 选择文件回调
var is_save = $('input[ name = cover_file_url]').val();
if(is_save == ''){
layer.load();
}else{
layer.msg('已存在视频,请先删除当前视频');
return false;
}
},
done: function(res){
//上传完毕回调
setTimeout(function(){
layer.closeAll('loading');
}, 100);
if(res.success){
layer.alert(res.success, {icon: 6});
$('input[name = cover_file_name]').val(res.file_name);
$('input[name = cover_file_url]').val(res.file_url);
return false;
}else{
layer.alert(res.error, {icon: 5});
return false;
}
}
});
});
// 封面视频上传取消
function cancel_1(){
$('input[name = cover_file_name]').val('');
$('input[name = cover_file_url]').val('');
layer.msg('封面视频已取消');
return false;
}
</script>
6、下载七牛云SDK包,更名为:Qiniu,并放在此处
7、后台控制 器代码
public function uploadFile(){
vendor("Qiniu.autoload");
$Qiniu_config = C(CONFIG_QINIU);
$auth = new \Qiniu\Auth($Qiniu_config['accessKey'], $Qiniu_config['secretKey']);
// 生成上传Token
$token = $auth->uploadToken($Qiniu_config['bucket']);
if(!empty($_FILES)){
$uploadMgr = new \Qiniu\Storage\UploadManager();
$filePath = $_FILES['file']['tmp_name']; //获取上传的图片、文件
$fileName = date('YmdHis').'-'.mt_rand(0,9).'.mp4'; //自定义保存在七牛的文件名
$fileUrl = $Qiniu_config['domain'].'/'.$fileName;
list($ret,$err) = $uploadMgr->putFile($token,$fileName,$filePath);
echo json_encode(array('success'=>'上传成功','file_url'=>'http://'.$fileUrl,'file_name'=>$fileName));
exit;
}else{
echo json_encode(array('error'=>'未上传文件视频'));
exit;
}
}