Yii 2 프레임 워 크 의 웹 을 읽 고 포맷 클래스 Response 로 되 돌려 줍 니 다.
15472 단어 프레임
하나의 Response 의 완전한 절 차 는 어떤 것들 이 있 습 니까?
전체적으로 말 하면 Yii 2 의 Response 코드 의 논리 구조 가 상당히 뚜렷 하고 출력 내용 은 http 프로 토 콜 규범 을 매우 규범 적 으로 따른다.또한 사전 이벤트, 데이터 준비 사전 이벤트, 사후 이 벤트 는 개발 자 에 게 서로 다른 상황 에서 추가 데 이 터 를 처리 합 니 다.코드 는 읽 기 에 매우 명료 하 다.처음부터 끝까지 온전 하 게 한 번 보면 완전히 이해 할 수 있다.다음은 Response 의 두 단락 코드 입 니 다.
출력 내용 코드
protected function sendContent()
{
if ($this->stream === null) {
echo $this->content;
return;
}
set_time_limit(0); // Reset time limit for big files
$chunkSize = 8 * 1024 * 1024; // 8MB per chunk
if (is_array($this->stream)) {
list ($handle, $begin, $end) = $this->stream;
fseek($handle, $begin);
while (!feof($handle) && ($pos = ftell($handle)) <= $end) {
if ($pos + $chunkSize > $end) {
$chunkSize = $end - $pos + 1;
}
echo fread($handle, $chunkSize);
flush(); // Free up memory. Otherwise large files will trigger PHP's memory limit.
}
fclose($handle);
} else {
while (!feof($this->stream)) {
echo fread($this->stream, $chunkSize);
flush();
}
fclose($this->stream);
}
}
특별한 건 없어 요.간단 한 문자열 이 라면, 직접 echo.주로 stream 을 처리 하 는 상황 을 봅 니 다.
우선 시간 초과 설정.파일 흐름 을 읽 는 데 필요 한 시간 을 정할 수 없 기 때문에 시간 초과 설정 이 필요 합 니 다.
최대 읽 기 길 이 를 설정 합 니 다.모든 요청 은 일정한 메모 리 를 차지 하여 데 이 터 를 처리 해 야 한다.내 가 신청 한 메모 리 를 제한 하여 php 프로그램의 메모리 부족 을 피하 기 위해 서 파일 읽 기 프로그램 에 대해 읽 기 제한 을 설정 해 야 합 니 다.읽 고 바로 새로 고침.
파일 다운로드 요청 헤더 설정
public function setDownloadHeaders($attachmentName, $mimeType = null, $inline = false, $contentLength = null)
{
$headers = $this->getHeaders();
$disposition = $inline ? 'inline' : 'attachment';
$headers->setDefault('Pragma', 'public')
->setDefault('Accept-Ranges', 'bytes')
->setDefault('Expires', '0')
->setDefault('Cache-Control', 'must-revalidate, post-check=0, pre-check=0')
->setDefault('Content-Disposition', $this->getDispositionHeaderValue($disposition, $attachmentName));
if ($mimeType !== null) {
$headers->setDefault('Content-Type', $mimeType);
}
if ($contentLength !== null) {
$headers->setDefault('Content-Length', $contentLength);
}
return $this;
}
다운로드 파일 의 응답 을 출력 하려 면 Yii 2 의 출력 요청 헤더 에 다음 과 같은 내용 이 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Pytest 테스트 프레임워크 기본 사용 방법 상세 정보pytest 소개 2. 매개 변수화를 지원하여 테스트할 테스트 용례를 세밀하게 제어할 수 있다. 3. 간단한 단원 테스트와 복잡한 기능 테스트를 지원할 수 있고selenium/appnium 등 자동화 테스트, 인터페...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.