将某些文件保密
我试图创建一个只能在用户登录时访问的私有文件目录。为此,我使用了 web 目录之外的文件夹,然后使用 php 来访问它(如果允许)。
这是一个示例:
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 机器上进行了本地测试。
有什么想法吗?谢谢。
这是在 movie.php 中...
if(file_exists($fileDir . md5($file) . $ext)) {
$contents = file_get_contents($fileDir . md5($file) . $ext);
}
header('Content-type: video/ogg');
echo $contents;
I was trying to create a directory of private files that could only be accessed when a user logs in. To do this, I used a folder outside the web directory, and then php to access it, if allowed.
Here's an example:
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)`);
}
This works great for images, but breaks the media player. Also, I've only tested this locally on a Linux machine.
Any ideas? Thanks.
This is in movie.php...
if(file_exists($fileDir . md5($file) . $ext)) {
$contents = file_get_contents($fileDir . md5($file) . $ext);
}
header('Content-type: video/ogg');
echo $contents;
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你的 movie.php 中的
是什么?您是否尝试查看 movie.php 是否回显文件内容? (在您的页面上查看源代码,然后复制电影源代码“movie.php?file=...”并将其粘贴到您的浏览器中,看看是否可以显示电影)。
此外,您还需要在 if 语句内移动标题和回显,如果该文件不存在,您可以回显不同的标准电影:
其中 MOVIE_NOT_FOUND 是一个常量,如果未找到所请求的电影,您想要显示的电影。
您可以做的另一件事是在您的源 src 中输入电影 php 的完整 uri(例如“http://localhost/some/uri/movie.php?file=...”
您从哪里开始在 movie.php 中获取 $fileDir 、 $file 和 $ext 吗?
编辑:应该解决您遇到的 file_get_contents 问题
What is with the
<br />
in you're movie.php ?Did you tryed to see if movie.php echoes the file contents ? ( view source on you're page , then copy the movie source src "movie.php?file=..." and paste it in you're browser , see if it get's the movie out ) .
Allso you need to move the header and echo inside the if statement , if that file doens't exist you can echo a different standard movie :
Where MOVIE_NOT_FOUND is a constant, movie you whant to display if the requested one is not found .
One other thing you could do is enter you're full uri to the movie php in you're source src ( like "http://localhost/some/uri/movie.php?file=..."
From where do you get $fileDir , $file and $ext in you're movie.php ?
Edit: should take care of the file_get_contents problem you have