首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何动态保护某些页面?

问如何动态保护某些页面?
EN

Stack Overflow用户
提问于 2013-03-02 00:04:01
回答 1查看 67关注 0票数 1

我有一份录像带清单。Fews是公共的,其他的是私有的。这些都有登录和密码,但不是单一的登录/密码,所有的私人视频都有自己的保护。目前:

代码语言:javascript
复制
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)
    {
        **????**
    }
}

我不知道如何做,如何使用转发和重定向操作。你能帮我吗?

EN

回答 1

Stack Overflow用户

发布于 2013-03-03 12:16:45

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

我所做的是将我想要私有的文件放在一个具有chmod 700权限的子目录中,然后使用if语句调用一个函数,该函数生成一个DATA URI,该函数从web不可访问的目录读取文件,将文件动态编码为Base64,并将生成的Base64编码插入到浏览器读取的PHP页面中。由于视频的大小,我不知道它对视频有多好的效果,但下面是函数。

代码语言:javascript
复制
function data_uri($file, $mime) {
    $contents = file_get_contents($file);
    $base64 = base64_encode($contents);
    return "data:$mime;base64,$base64";
}

然后我只需在我想要图片的地方调用函数。

代码语言:javascript
复制
<input class="map" name="pos" type="image" src="<?php echo data_uri("./img/overlay_$sessionid.png", 'image/png')?>" />

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15161861

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档