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

私が運営しているウェブサイト上の画像ファイルを保護する同様の必要性があります。

私がしたことは、パーミッションのあるサブディレクトリにプライベートにしたいファイルを配置し、ifステートメントを使用して、Webアクセスできないディレクトリからファイルを読み取り、その場でファイルをBase64としてエンコードし、結果を挿入するchmod 700関数を呼び出しました。DATA URIブラウザが読み取るPHPページへのBase64エンコーディング。サイズの関係でこれがビデオでどれだけうまくいくかはわかりませんが、ここに機能があります。

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 に答える