我正在使用Laravel 4.1来构建一个小型项目。基本的想法是创建一个网站,让我可以在自己的服务器上观看我的视频。我已经找到了认证部分。我使用Flysystem来访问文档根目录之外的服务器文件系统。
基本上,我的问题是'如何使用Laravel流式传输视频?'
如果可能的话,我希望能够使用videojs或jwplayer或类似的东西。不是要求,只是扔掉它。
如果我需要提供更多详细信息或任何类型的控制器信息让我知道,我会发布,但是,我不知道我现在应该发布什么。
更新
所以我不认为我的问题措辞得很好。我也对我的代码做了一些更改,因此更好地了解了我要做的事情。因此,考虑到这一点,我会接受它。
客户端我没有问题。我理解我将如何解决这个问题。
服务器端。问题仍然存在,我如何设计Response
以确保在我点击mydomain.com/mymovie.mp4
时,响应是否得到妥善制定?
答案 0 :(得分:4)
您可以返回流式响应:
$file_location = __DIR__ . '/path/to/file.ext';
return Response::stream(function () use ($file_location) {
$stream = fopen($file_location, 'r');
fpassthru($stream);
}, 200, $headers);
标题需要包含mime类型和文件大小。有各种功能可以为您提供值。或者,您可以使用像Flysystem这样的软件包(无耻的促销)来获取这些值,从而使这项工作更容易一些。例如:
$stream = $filesystem->readStream($location);
$headers = [
"Content-Type" => $fs->getMimetype($location),
"Content-Length" => $fs->getSize($location),
"Content-disposition" => "attachment; filename=\"" . basename($file) . "\"",
];
return Response::stream(function () use ($stream) {
fpassthru($stream);
}, 200, $headers);
答案 1 :(得分:-4)
Laravel只是一个框架。它与网站的功能没有多大关系。它只是帮助您更好,更快地创建和管理网站。
如果您想在自己的网站上流式传输视频,则应该关注<video>
html
标记。