PHP 只允许某些用户访问目录中的视频文件

问题描述 投票:0回答:2

对于我当前的项目,我需要一个文件夹,其中包含只有注册用户才能看到的视频,我知道我可以通过 .htaccess 文件阻止访问,但至少我没有完全得到我想要的..

我当前的 .htaccess 文件是这样的:

Deny from all 

目前我通过 php 导入视频/图片,可以访问它们,但它真的很慢..

这里是我的照片的例子:

<img src="data:image/png;base64,<?php echo base64_encode(file_get_contents("directory")) ?>">

这里是我的视频:

<img src="data:video/mp4;base64,<?php echo base64_encode(file_get_contents("directory")) ?>">

我确定有一种更好的方法可以让页面不会永远加载,我也尝试了一个带有 php 的视频流,但我在那里遇到了另一个问题,我不能再离开页面,就像之前需要永远点击链接或离开..:(

非常感谢帮助!

php .htaccess video permissions video-streaming
2个回答
1
投票

你可以做类似

<img src="getfile.php?file=foo.mp4">
和:

$file = validate_file_name_and_path($_GET['file']);

if( user_logged_in() && user_can_access($file) ) {
  // set appropriate headers, eg:
  header('Content-Type: video/mp4');
  readfile($file);
  exit();
}

0
投票

对于遇到相同问题的任何人,我在另一个线程中找到了工作代码: https://stackoverflow.com/a/47626870/16587767

在视频中仍然具有跳过功能的同时也适用于移动设备的代码是这样的:

$file='path/file.mp4';

header('Content-Type: video/mp4'); #Optional if you'll only load it from other pages
header('Accept-Ranges: bytes');
header('Content-Length:'.filesize($file));

readfile($file);

© www.soinside.com 2019 - 2024. All rights reserved.