1

我有一个视频列表。很少有人是公开的,还有一些是私人的。这些有登录名和密码,但不是一个登录名/密码,所有私人视频都有自己的保护。目前:

class VideoController extends Controller
{
    /**
     * @Route("/videos", name="videos")
     * @Template()
     */
    public function indexAction()
    {
        $videos = $this->getDoctrine()->getRepository('CcTestBundle:Video')->findAll();
        return array('videos' => $videos);
    }

    /**
     * @Route("/video/{videoId}", name="video_show")
     * @Template()
     */
    public function showAction($videoId)
    {
        $video = $this->getDoctrine()->getRepository('CcTestBundle:Video')->find($videoId);
        if($video->isSecured()) {
            **????**
        }
        else return array('video' => $video);
    }

    /**
     * @Route("/video/{videoId}/login", name="video_login")
     * @Template()
     */
    public function loginAction($video)
    {
        **????**
    }

    /**
     * @Route("/video/{videoId}/login_check", name="video_security_check")
     */
    public function securityCheckAction($videoId)
    {
        **????**
    }
}

我不知道该怎么做,如何使用转发和重定向操作。你可以帮帮我吗 ?

4

1 回答 1

0

我有类似的需要来保护我运行的网站上的图像文件。

我所做的是将我想要私有的文件放在具有权限的子目录中,chmod 700然后使用 if 语句调用生成的函数DATA URI将 Base64 编码到 PHP 页面中以供浏览器读取。由于视频的大小,我不知道这对视频的效果如何,但这是功能。

function data_uri($file, $mime) {
    $contents = file_get_contents($file);
    $base64 = base64_encode($contents);
    return "data:$mime;base64,$base64";
}

然后我只调用我想要图片的函数。

<input class="map" name="pos" type="image" src="<?php echo data_uri("./img/overlay_$sessionid.png", 'image/png')?>" />

您只需要相应地更改文件类型。

于 2013-03-03T04:16:44.853 回答