我再次尝试阻止从我的网站缓存mp3文件。我使用flash播放器,所有文件都在公共html之外我使用这个脚本来访问文件
<?php
$file = $_GET['file'] . '.mp3';
$fileDir = '/path/outside/public_html/';
if (file_exists($fileDir . $file))
{
ob_start();
$contents = file_get_contents($fileDir . $file);
echo $contents;
$buffer = ob_get_contents();
ob_end_flush();
header('Expires: Mon, 26 Jul 1980 00:00:00 GMT');
header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
header('Cache-Control: post-check=0, precheck=0', false);
header('Pragma: no-cache');
header('Content-type: audio/mpeg');
echo $buffer;
} ?>
我是php noob所以这个脚本可能是错误的,但它的工作......几乎,我有问题阻止Opera中的文件缓存 - 它仍然缓存mp3文件。我看到了一些解决方案:当我从站点播放文件时,文件被下载到缓存但是在完全下载文件被自动删除之后。没有时间复制此文件。所以我的问题是:你这样做吗?这可能用PHP吗?
答案 0 :(得分:0)
此问题可能是由服务器本身引起的,为了防止文件缓存尝试在文件名中添加一些额外的参数,如:
$file = $_GET['file'] . '.mp3?' . time();