搜索热词

WordPress中文社区 > , > WordPress在线视频只能播放不能让用户下载的实现方法

WordPress在线视频只能播放不能让用户下载的实现方法

发布于09月11日 被浏览 1,610 次

1、WordPress本身不支持Session,需要先开启支持

//在 WordPress 初始化时启动 Session
add_action( 'init', function ()
{
   if ( ! session_id() ) {
      session_start();
   }
}, 1 );
//在用户登录或注销时销毁 Session 数据
add_action('wp_logout', 'destroy_session');
add_action('wp_login', 'destroy_session');

function destroy_session() {
    session_destroy ();
}

2、视频播放页面设置token

<?php 
    $token = get_current_user_id() . '|' . time() . '|'.get_field('coursevideo')['ID'];
	$_SESSION['token'] = md5($token);
?>
<!--登录用户id+时间+视频文件id:具体可以根据自己的情况-->

3、视频播放请求地址使用如下格式

<video src="<?php%20bloginfo('url');?>/mxvideo.php?video=<?php%20echo%20get_field('coursevideo')['ID'];?>" controls="controls">
您的浏览器不支持 video 标签。
</video>
<!--里面的传参传的是视频文件的ID,方便在mxvideo.php中调用视频路径-->

4、创建mxvideo.php

<?php 
/** 
* 生成html video 播放地址 
require_once('wp-load.php' );
$vid = (int)$_GET['video']; //数据库存放的资源id
$data = wp_get_attachment_url($vid); //通过vid 获取 数据库存放的真实资源地址
if($_SESSION["token"]){  
    unset($_SESSION["token"]); //删除token,保证每次只能播放一次
    header("Location:" . $data);
}

4、另外,防止用户找到视频的真实地址直接用浏览器打开视频下载,对服务器进行防盗链处理,宝塔中可以在网站设置中增加防盗链设置里增加mp4类型,同时启用防盗链

点赞 收藏 打赏 分享

0 条评论

无意义的评论将很快被删除,账号将被禁止发言。 发表评论 0/500
 
  1. 还没有任何评论,你来说两句吧