2010-08-18 5 views
1

다시 내 사이트에서 mp3 파일 캐싱을 방지하려고합니다. 내가 플래시 플레이어를 사용, 모든 파일 내가 파일오페라 폼 chaching 방지 mp3

<?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와 멍청한 놈이야,하지만 일의에 액세스하려면이 스크립트를 사용하여 외부 공개 HTML은 ... 거의, 나는 문제가 오페라에서 파일 캐시를 방지합니다 - 여전히 mp3 파일을 캐시합니다. 몇 가지 해결책을 발견했습니다. 사이트에서 파일을 재생할 때 파일이 캐시로 다운로드되었지만 전체 다운로드 파일이 자동 삭제됩니다. 이 파일을 복사 할 시간이 없습니다. 그래서 내 질문은 : 호 이렇게? PHP로 가능합니까? 대한

감사하고 미안 내 영어

이 문제는 파일 캐싱이 같은 파일 이름을 몇 가지 추가 매개 변수를 추가하려고 방지하기 위해 서버 자체에 의해 발생 될 수

답변

0

:

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

감사합니다하지만이 작동하지 . 나는 어떤 오류도 내지 않는다. 단지 아무 일도 일어나지 않는다. – Martin

+0

URL이 브라우저에로드 될 때 URL에 대해 수행해야합니다. 코드가 요청을 수신하고 파일을 검색하려고 할 때 여기가 아닙니다. – hallvors

+0

왜이 작업을 수행 하시겠습니까? 캐싱에는 몇 가지 이점이 있습니다. 최종 사용자가 더 빠르고 더 나은 환경을 제공하고 서버가 작업을 절약하고 더 빠르게 실행되며 많은 대역폭을 지불 할 필요가 없어 세계 전기를 절약하고 네트워크 정체를 줄입니다. 그걸 깨뜨릴 필요가 있니? – hallvors