2010-06-15 3 views
0

PHP 스크립트는 readfile()을 사용하여 파일을 처리하고 HTTP 헤더를 수동으로 추가합니다. 파일 크기는 약 1MB 정도이므로 부분 판독은 필요하지 않습니다.PHP 스크립트를 통한 파일 제공 및이 파일을 안전한 상태로 바꾸기

이 파일을 업데이트 된 파일로 바꾸는 가장 좋은 방법은 무엇입니까? 그러나 이미 시작된 다운로드가 손상되지 않도록하려면 어떻게해야합니까? 보류중인 다운로드가 가져온 이전 파일 버전으로 완료되도록하고 싶습니다.

플랫폼 : 리눅스, PHP 5, 아파치 2

답변

1

사용 버전 번호 :

$candidates=sort(glob($dir . $prefix . '*')); 
$most_recent=array_pop($candidates); 

예를 들어, file0001.pdf file0002.pdf file0003.pdf

C.

+0

심플하면서도 멋진 :-)를 얻을 수 없을거야 – tomash

1

당신은 파일 핸들에 대한 잠금을 얻을 수 flock를 사용할 수는 - 배타적 잠금을 얻을 수있을 때까지이 당신을 의미합니다 작가 과정을 차단합니다.

따라서 독자는 LOCK_SH 공유 잠금을 얻은 다음 간단히 fpassthru을 사용하여 파일을 출력하고 마지막으로 잠금을 해제하십시오.

쓰기가 LOCK_EX 배타 잠금을 얻고 안전하게 쓰기를 수행 한 다음 차단 된 판독기가 새 파일을 페치 할 수 있도록 잠금을 해제합니다. 파일 이름에

+0

하지만 과도하게로드 사이트에 당신은 독점 잠금 – symcbean