php 다운로드 파일 에 대한 자세 한 설명

php 다운로드 파일,예 를 들 어 txt 파일.브 라 우 저가 가지 고 있 는 다운로드 상 자 를 팝 업 하고 다른 동작 으로 저장 하 는 효과 가 나타 납 니 다.때때로 메모리 가 넘 치고 시간 을 초과 하 는 현상 이 나타난다.시간 초과 시 set 설정time_limit(0);메모리 가 넘 치면 데이터베이스 에서 꺼 낸 데이터 의 양 이 너무 많아 서 그런 것 일 수 있 습 니 다.파일 에서 읽 으 면 메모리 가 넘 치면 코드 읽 기 방식 이 올 바 르 지 않 습 니 다.files 나 filegetcontens 를 호출 해 야 fopen 이 라면 버퍼 에 크기 를 고정 시 키 고 읽 은 다음 기록 할 수 있 습 니 다.메모리 가 넘 치지 않 습 니 다.예 를 들 어 코드:

if (file_exists($file_path)) { //
$handle = fopen($file_path, "r");
while (!feof($handle)) {
$content = fgets($handle, 4096); //
echo $content; // , php://stdout。 tcp   512
}
fclose($handle);
}
하지만 출력 하기 전에 한 번 호출 해 야 합 니 다.@obend_flush();반복 해서 호출 할 수 없습니다.한 번 만 호출 하면 됩 니 다.@ob_end_flush();//출력 버퍼 내용 을 씻 어 내 고 버퍼 파일 을 닫 습 니 다.다운로드:content-type://다운로드 형식,브 라 우 저 에서 처리 할 수 없 는 형식 은 다운로드 상자

header("Content-Type: application/force-download");
header("Content-Type: application/download");
header("Content-Transfer-Encoding: binary");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Pragma: no-cache");
Header("Content-type: application/octet-stream");  //   
Header("Accept-Ranges: bytes");
Header("Accept-Length: ".filesize($filename). ' bytes');
Header('Content-Disposition: attachment; filename='.$filename);  //HTTP
가 팝 업 됩 니 다.

좋은 웹페이지 즐겨찾기