PHP只允许通过页面下载文件
我有一些mp3文件,我想只允许付费会员通过页面收听和下载。问题是,如果我这样做了PHP只允许通过页面下载文件,php,Php,我有一些mp3文件,我想只允许付费会员通过页面收听和下载。问题是,如果我这样做了 Order deny,allow Deny from all Allow from website.com 它成功阻止用户在www.example.com/song/song.mp3上下载 我能做到 header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream');
Order deny,allow
Deny from all
Allow from website.com
它成功阻止用户在www.example.com/song/song.mp3上下载
我能做到
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
exit;
但它只允许用户下载。如果我有一个html5播放器,允许用户在下载之前进行流式播放,它会说:“由于服务器或网络故障,或者由于格式不受支持,音频无法加载。”如果我取消htaccess的线路,它将能够流式播放
这是球员
<video id="player" class="video-js vjs-default-skin" controls preload="auto"
data-setup="{}">
<source src="song/song.mp3" type='audio/mp3' />
</video>
我有没有办法允许付费用户只从特定页面下载和流式传输,而限制其他人?谢谢HTML 5播放器是否在同一个域中(完全匹配)?如果没有,您将需要设置一个交叉源请求来强制发送auth头。您好,游戏在同一个域上。我把它添加到问题中,这样你就可以看看使用正确的mime类型了?你是说?mime类型与你的问题无关。据我所知,您仍在访问原始mp3文件,因此下载脚本中的标题不会影响它。HTML 5播放器是否在同一个域中(完全匹配)?如果没有,您将需要设置一个交叉源请求来强制发送auth头。您好,游戏在同一个域上。我把它添加到问题中,这样你就可以看看使用正确的mime类型了?你是说?mime类型与你的问题无关。据我所知,您仍在访问原始mp3文件,因此下载脚本中的标题不会影响它。HTML 5播放器是否在同一个域中(完全匹配)?如果没有,您将需要设置一个交叉源请求来强制发送auth头。您好,游戏在同一个域上。我把它添加到问题中,这样你就可以看看使用正确的mime类型了?你是说?mime类型与你的问题无关。据我所知,您仍在访问原始mp3文件,因此下载脚本中的标题不会影响它。