본문 바로가기
Web Programming Language/PHP

PHP) readfile() 함수

by manchesterandthecity 2021. 1. 15.

함수설명 :

readfile 함수는 파일을 읽은 후, 출력을 합니다.

 

반환값 :

이 함수는 성공하거나 실패할 경우에 읽은 바이트 수를 반환합니다.

 

기타 :

함수 이름앞에 @를 붙이면, 출력 오류를 숨길 수 있습니다.

 

정의 : 

readfile(filename)

 

filename : 파일의 이름을 입력받습니다.

 

<?php
$file = '/usr/share/apache2/icons/ubuntu-logo.png';
if( !file_exists($file) ) {
	echo "파일이 없습니다.";
	exit;
}
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.basename($file).'"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));

readfile($file);

 

 

이 함수를 실행하면,

해당 파일의 내용이 모두 웹 브라우저에 출력된다.

 

특정 파일의 내용을 출력할 때 사용할 수 있지만, 실제로는 해당 파일의 다운로드를 구현하기 위해 많이 사용된다.

 

일반적으로는, 파일의 링크를 연결해두고 클릭하면 다운로드 창이 뜨게 되지만, txt문서나 이미지 파일의 경우 웹 브라우저에서 지원하는 형식의 파일이면 파일 다운로드 창이 뜨지 않고 웹 브라우저에 바로 보여지게 된다.

 

이처럼 웹 브라우저에서 보이는 것을 방지하고 파일 다운로드 창이 뜨도록 하려면 파일의 형식을 속여야 한다.

 

 

 

 

출처 :

m.blog.naver.com/PostView.nhn?blogId=writer0713&logNo=220191525288&proxyReferer=https:%2F%2Fwww.google.com%2F

댓글