防止Opera表单缓存mp3

时间:2010-08-18 22:32:38

标签: php caching opera

我再次尝试阻止从我的网站缓存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吗?

1 个答案:

答案 0 :(得分:0)

此问题可能是由服务器本身引起的,为了防止文件缓存尝试在文件名中添加一些额外的参数,如:

$file = $_GET['file'] . '.mp3?' . time();