如何使用网址在网上制作视频,但无法通过直接链接访问?

时间:2013-12-18 10:40:54

标签: php video media-player media jwplayer

如何使用网址在网上制作视频,但无法通过直接链接访问?

现在我使用jw player

<script type="text/javascript">
                    jwplayer("mediaplayer1889082201").setup({
                            flashplayer: "jwplayer/jwplayer.flash.swf",
                            file: "http://testhost.com/myproject/files/1/video/coursecreeklruprr4nags7ee1codeschool_756.mp4",
                            image: "http://testhost.com/myproject/files/1/video/coursecreeklruprr4nags7ee1codeschool_756.jpg",
                            width: "800",
                            height: "510",
                            stretching: "uniform",
                            skin: "jwplayer/jwplayer-skins-free/six.xml",
                            abouttext: "myproject",
                            aboutlink: "myproject",
                    });
            </script>

所以我可以使用http://testhost.com/myproject/files/1/访问文件夹(通过inspect元素查看此链接)

我想在jw播放器上播放视频。但我不希望用户通过直接网址访问包含视频的文件夹。

你告诉你。

2 个答案:

答案 0 :(得分:1)

好的,我知道您希望将视频文件提供给脚本,但您不希望用户能够导航到视频网址并从那里下载/查看。

使用PHP

的快速示例

将您的代码更改为:

<script type="text/javascript">
                    jwplayer("mediaplayer1889082201").setup({
                            flashplayer: "jwplayer/jwplayer.flash.swf",
                            file: "video.php?file=coursecreeklruprr4nags7ee1codeschool_756.mp4",
                            image: "http://testhost.com/myproject/files/1/video/coursecreeklruprr4nags7ee1codeschool_756.jpg",
                            width: "800",
                            height: "510",
                            stretching: "uniform",
                            skin: "jwplayer/jwplayer-skins-free/six.xml",
                            abouttext: "myproject",
                            aboutlink: "myproject",
                    });
            </script>

正如您所看到的,我们正在向video.php发送文件请求,然后我们将创建为该视频提供服务的文件,只有当引荐者是您的网页时才会显示该文件。

继续在同一文件夹中创建video.php

首先,我们需要检查网址中是否有文件,如下所示:

<?php
if(isset($_GET['file']) {
}

然后我们检查引荐来源是否是您的页面,如下所示:

if (strpos($ref,'testhost.com/myproject/files/1') !== 0){
}

如果是您的页面,我们可以开始提供您的文件,如下所示:

$path = 'video/' . $_GET['file'];
header("X-Sendfile: $path");

所以整个事情在一起:

<?php
if(isset($_GET['file']) {
    if (strpos($ref,'testhost.com/myproject/files/1') !== 0){
        $path = 'video/' . $_GET['file'];
        header("X-Sendfile: $path");
    }
}

注意;这是一个非常快速的示例,而不是一个安全且随时可用的脚本!它们必须是内置的安全检查,即使文件不存在,您也要提供文件,因此仍需要进行检查以使其可以使用。

祝你的项目好运。

答案 1 :(得分:0)

下:

stretching: "uniform",

添加:

type: "mp4",

这样,如果文件没有文件扩展名,JW Player可以读取该文件。