【问题标题】:Prevent Opera form caching mp3防止 Opera 表单缓存 mp3
【发布时间】:2010-08-18 22:32:37
【问题描述】:

我再次尝试阻止表单缓存 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 菜鸟,所以这个脚本可能有问题,但它可以工作......几乎,我有问题阻止 Opera 中的文件缓存 - 它仍然缓存 mp3 文件。我看到了一些解决方案:当我从站点播放文件时,文件被下载到缓存,但在完整下载文件后被自动删除。没有时间复制此文件。所以我的问题是:如何做到这一点?用php可以吗?

【问题讨论】:

    标签: php caching opera


    【解决方案1】:

    这个问题可能是服务器本身造成的,为了防止文件缓存尝试在文件名中添加一些额外的参数,例如:

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

    【讨论】:

    • 谢谢,但这不起作用。我什至没有收到任何错误,只是什么也没发生。
    • 这需要在浏览器中加载 URL 时进行,而不是在代码收到请求并即将查找文件时进行。..
    • 你为什么要这样做?缓存有几个好处:最终用户获得更好更快的体验,您的服务器节省工作并运行得更快,您不必为那么多带宽付费,它节省了世界的电力并减少了网络拥塞.. 那么为什么要这样做你需要打破它吗?
    猜你喜欢
    • 2015-04-10
    • 2014-11-11
    • 2012-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多