2012-05-13 3 views
2

URL에서 파일의 ID를 가져 와서 SQL 데이터베이스에서 파일에 대한 링크를 찾은 다음 파일을 스트리밍하는 PHP 스크립트가 있습니다.브라우저가 페이지를로드하지 못하도록하는 HTTP 헤더?

클라이언트의 페이지에서 링크를 클릭하고 파일을 다운로드하라는 메시지가 표시됩니다. 파일이 데이터베이스에 없으면 브라우저가 페이지를 404 또는 다른 유형의 오류 페이지로 변경하는 대신 브라우저의 페이지를 그대로 유지하십시오.

브라우저에 페이지를로드하지 않도록 지시하는 HTTP 상태 또는 콘텐츠 유형이 있습니까? content-length를 0으로 설정하는 것과 같은 일을 할 것인가?

+0

'file_exists()'를 사용하는 것이 더 간단하지 않겠는가? 파일이 존재하지 않는다면, 처음부터 스트리밍하지 마라. –

+0

@Billthelizard 나는 내 대답을 삭제 한 것에 매우 실망했다. 그것의 의도는 오류가 발생했을 때 오류를 처리하는 대신 처음에는 나쁜 링크를 방지 할 수있는 기회가 있음을 보여주는 것이 었습니다. 예외를 포착하지 마십시오. 예외는 피하십시오. –

답변

5
204 No Content 

해당 상태 코드를 반환하면 브라우저가 해당 페이지에 남아있게됩니다.

+0

Worked! 감사! – mowwwalker

+2

필요한 경우 추가 HTTP 코드 : http://en.wikipedia.org/wiki/List_of_HTTP_status_codes – Yoone

+0

내가 추가 할 수있는 유일한 방법은 지원되는 모든 브라우저가 작동하는지 확인하거나 적어도 페이지를 망가 뜨리지 않고 명예롭게 실패하는 것입니다. –