我可以在php中使用带有视频的readfile()吗?

时间:2017-08-21 12:47:19

标签: php html5 laravel video-streaming html5-video

我正在寻找保护DRM以外的视频的方法,所以我尝试使用会话而不是视频的直接链接,然后我检查它,如果会话是真的,我运行视频的fopen / ReadFile的()。

但视频无法成为种子,它只是在生活中工作,如下例所示:

Here is a link from the site I work on.

我可以使用任何东西使其可以搜索吗?

    $file = base_path(). '/uploads/test.mp4';

    $size = File::size($file);
    $myfile = fopen($file, 'rb');

    echo fread($myfile, $size);

1 个答案:

答案 0 :(得分:0)

您的路线如

Route::get('get-video/{videoName}', 'YourController@getVideo')->name('getVideo');

您的控制器代码如:

public function getVideo($videoName)
{

    $fileContents = Storage::disk('local')->get("uploads/".$videoName);
    $response = Response::make($fileContents, 200);
    $response->header('Content-Type', "video/mp4");
    return $response;
}

您的观点如下:

<video width="320" height="240" controls>
        <source src="{{ route('getVideo', 'test.mp4')  }}" type="video/mp4">
        Your browser does not support the video tag.
</video>

此外,您还需要在根.htaccess文件中添加以下行:

AddType video/webm .webm

注意:在此更改后,您仍面临音频问题,因此需要将以下行放入.htaccess

Add type video/ogg .ogv 
Add type audio/ogg .oga

希望这对你有用!