
sendfile 메소드는 Swoole 프레임워크의 HttpResponse 클래스에서 제공하는 메소드로, 파일을 클라이언트에게 직접 전송하는 기능을 제공합니다. sendfile 메소드를 사용하기 위해서는 다음 조건이 필요합니다.
1. PHP 버전: PHP 5.5.0 이상 버전이 필요합니다. sendfile 메소드는 PHP 5.5.0 이상 버전부터 지원됩니다.
2. Swoole 버전: Swoole 2.0.0 이상 버전이 필요합니다. sendfile 메소드는 Swoole 2.0.0 이상 버전부터 지원됩니다.
3. 파일 경로: 파일 경로가 절대 경로 또는 상대 경로여야 합니다. 상대 경로는 현재 실행 중인 PHP 파일의 위치를 기준으로 계산됩니다.
4. 파일 크기: 파일 크기가 1MB 이상이어야 합니다. sendfile 메소드는 파일 크기가 1MB 이상인 경우에만 동작합니다.
파일을 전송할 때 설정이 필요한 항목은 다음과 같습니다.
1. 파일 경로: sendfile 메소드의 첫 번째 인자로 파일 경로를 지정합니다.
2. 파일 크기: sendfile 메소드의 두 번째 인자로 파일 크기를 지정합니다. 파일 크기는 바이트 단위로 지정됩니다.
3. 오프셋: sendfile 메소드의 세 번째 인자로 오프셋을 지정합니다. 오프셋은 파일에서 전송할 시작 위치를 지정합니다. 기본값은 0입니다.
4. length: sendfile 메소드의 네 번째 인자로 전송할 데이터의 길이를 지정합니다. 기본값은 파일 크기와 동일합니다.
예를 들어, 다음 코드는 sendfile 메소드를 사용하여 파일을 전송하는 방법을 보여줍니다.
#hostingforum.kr
php
$http = new swoole_http_server("127.0.0.1", 9501);
$http->on('request', function ($request, $response) {
$file_path = './example.txt';
$file_size = filesize($file_path);
$response->sendfile($file_path, 0, $file_size);
});
$http->start();
이 코드는 sendfile 메소드를 사용하여 example.txt 파일을 클라이언트에게 전송합니다. sendfile 메소드는 파일을 클라이언트에게 직접 전송하므로, PHP의 메모리 사용량이 줄어들고 성능이 향상됩니다.
2025-03-30 00:32