我有一个视频列表。粪便是公开的,其他粪便是私人的。这些视频有登录名和密码,但不是一次登录/pwd,所有私人视频都有自己的保护。目前:
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)
{
**????**
}
}
我不知道该怎么做,如何使用正向和重定向操作。你能帮我吗?
我也有类似的需要来保护我运行的网站上的图像文件。
我所做的是将我想要的私有文件放在具有chmod 700
权限的子目录中,然后使用if语句调用一个函数,该函数生成一个DATA URI
,该函数从web不可访问目录中读取文件,动态地将文件编码为Base64,并将生成的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')?>" />
您只需要相应地更改文件类型。