php
  • private
  • html5-video
  • 2011-01-07 6 views 0 likes 
    0

    ユーザーがログインしたときにしかアクセスできないプライベートファイルのディレクトリを作成しようとしていました。これを行うために、Webディレクトリの外にフォルダを使用し、 。ここで一部のファイルを非公開にする

    は例です:

    function display_movie($file){ 
    
    printf("`<video id='movie' width='960' height='416' controls='controls' onerror='fix()'>`<br/> 
    `<source src='movie.php?file=%s' type='video/ogg; codecs=\"theora, vorbis\"'> 
    </video>", rawurlencode($file)`); 
    
    } 
    

    これは、画像のための素晴らしい作品が、メディアプレーヤーを破ります。また、私はこれをLinuxマシンでローカルにのみテストしました。

    アイデア?ありがとう。

    これはあなたの中に<br />はmovie.phpだとある

    if(file_exists($fileDir . md5($file) . $ext)) { 
        $contents = file_get_contents($fileDir . md5($file) . $ext); 
    } 
    
    header('Content-type: video/ogg'); 
    echo $contents; 
    
    +0

    がありますか? movie.php –

    +0

    thのコンテンツを表示するose
    htmlタグはPHPコード – Moak

    +0

    に入れてはいけません。私は投稿を正しく表示しようとしていて、失敗しました。私はそれらを削除しました – user490895

    答えて

    0

    何... movie.phpにありますか?

    movie.phpがファイルの内容をエコーし​​ているかどうか試しましたか? (あなたのソースを見るには、ムービーソースsrc "movie.php?file = ..."をコピーしてブラウザに貼り付けてください。

    はAllsoあなたは、ヘッダーを移動する必要があるとそのファイルdoens'tは、あなたが別の標準の映画をエコーすることができますが存在する場合には、if文の内側にエコー:

    if(file_exists($fileDir . md5($file) . $ext)) { 
        $contents = file_get_contents($fileDir . md5($file) . $ext); 
    } else { 
        $contents = file_get_contents($fileDir . md5(MOVIE_NOT_FOUND)); 
    } 
    header('Content-type: video/ogg'); 
    echo $contents; 
    
    MOVIE_NOT_FOUNDはあなたにwhant定数、映画をある

    要求されたものが見つからない場合は表示します。

    もう1つのことは、あなたがソースのsrc(「http://localhost/some/uri/movie.php?file = ...」のような映画のPHPに完全なURIを入力していることです)

    movie.php


    編集しているあなたは、あなたに$ FILEDIR、$ファイルと$ EXTを得るかどこから:くださいのfile_get_contentsの問題の世話をする必要がありますが

    $file = $fileDir . md5($file) . $ext; 
    header('Content-type: video/ogg'); 
    //set aditional headers you may whant here 
    ob_clean(); 
    flush(); 
    if(file_exists($file)) 
    { 
        readfile($file); 
    } else { 
        readfile($fileDir . md5(MOVIE_NOT_FOUND)); 
    } 
    exit; 
    
    +0

    それは内容を取得しますが、視聴者は壊れます:スクロールdoesnt仕事とそのようなもの。 $ fileDirはファイルへのパス、$ file =はauth.phpと$ ext = '。ogv'から渡されます また、別のディレクトリからファイルを取得するのではなく、同じディレクトリからファイルを取得すると、プレーヤー正常に動作します。しかし、oggは隠されていません。 – user490895

    +0

    あなたは問題がフロントエンド(クライアント側、html/css/js/whatever)であり、サーバーが映画を渡す場合はサーバー上ではありません。 –

    +0

    非常に小さな提案です。 '$ fileDirをコンパイルします。 md5($ file)。 $ ext'を一度格納し、これを文字列変数として格納し、これを 'file_exists()'と 'file_get_contents()'関数に使用すると、この解決法は少しうまくいくでしょう。'header()'呼び出しを先頭に移動して、結果を保持するために '$ content'変数を使用するのではなく、まっすぐにエコーします。 –

    関連する問題