我需要从网站上保护我的视频文件。所以,我需要解码我的文件名。我使用了以下代码。但视频没有播放。
<?php
$str1 = 'movie.mp4';
$enc1 = base64_encode($str1);
$str2 = 'movie.swf';
$enc2 = base64_encode($str2);
$str3 = 'movie.ogg';
$enc3 = base64_encode($str3);
$str4 = 'movie.webm';
$enc4 = base64_encode($str4);
echo "<video width='320' height='240' controls>
<source src='".$enc1."' type='video/mp4'>
<source src='".$enc3."' type='video/ogg'>
<source src='".$enc4."' type='video/webm'>
<object data='".$enc1."' width='320' height='240'>
<embed src='".$enc2."' width='320' height='240'>
</object></video> ";
?>
视频未播放的原因是您在src中指定的文件不存在,因为它是编码的字符串,而不是实际的文件名。
试图"隐藏"文件名是毫无意义的。如果你想让用户观看视频,用户需要一些可以访问文件的URL。根据定义,URL将始终是公共的,并且对用户可见,否则它不能用于访问任何内容。这个网址到底是什么完全取决于你。它可以是文件的真实名称,也可以是您以某种方式与服务器上的文件关联的某个随机id。这对用户来说并不重要。重要的是,当访问URL时,请求的数据会被提供。
如果你想只向特定用户显示文件,你需要一个授权系统,而不是混淆URL。
通过这种方式,将出现找不到文件的错误,请尝试执行下面给出的操作。
你可以做一件事,让一个以字节为单位读取视频文件的函数返回给播放器,只需将视频名称n路径传递给函数n播放视频,而不需要任何url,比如流式