나는 파일 업로드가있는 프로젝트에서 일하고 있습니다. 이 파일들은 임의의 이름으로 주어지며 웹 디렉토리의 바깥쪽에 배치됩니다.루핑, 일련의 헤더 및 ... 아무 일도 일어나지 않습니다.
그런 다음 URL에 전달 된 매개 변수를 기반으로 이미지를 검색하는 스크립트가 있습니다.이 스크립트는 절대 작동합니다.
그러나 브라우저에 전달할 헤더 배열을 만든 다음 foreach
루프를 사용하여이 루프를 반복하고 아무 것도 설정하지 않은 것처럼 보입니다. 하지만, 내가 수동으로 설정하면 그들은 header
기능을 작동합니다! 기괴한!
이제 루프를 반복하지 않고 header
함수를 사용해도 괜찮습니다. 그러나 이것이 작동하지 않는 특별한 이유가 있습니까?
나는 또한 위의 방법을 사용하여 배열에 모든 헤더를 저장 한 다음 브라우저에 내용을 전달할 때 처리하지만, 실제로 전달되는 경우 위에 언급 한 문제를 확인한다고 말할 수는 없습니다. 내 코드의
발췌문 : 장소의 밖으로 보이는이
// Expiry date in seconds, in this instance a year
$expiry_date= (60 * 60 * 24 * 365);
// Our headers
$img_headers= array(
'Content-Type : ' . $mime,
'Cache-Control: no-cache, must-revalidate',
//'Cache-control: max-age=' . $expiry_date,
'Expires:' . gmdate(DATE_RFC1123, time() + $expiry_date),
'Pragma: ',
'Last-Modified: ' . gmdate(gmdate(DATE_RFC1123), filemtime($image_path)),
'Content-Length: ' . (string) filesize($image_path),
'Content-Disposition: inline; filename="' . $image_name . '"'
);
/*header('Content-Type: ' . $mime, TRUE);
header('Cache-Control: no-cache, must-revalidate', TRUE);
header('Expires: ' . gmdate(DATE_RFC1123, time() + $expiry_date));
header('Pragma: ', TRUE);
header('Last-Modified: ' . gmdate(gmdate(DATE_RFC1123), filemtime($image_path)), TRUE);
header('Content-Length: ' . (string) filesize($image_path), TRUE);*/
// Loop through and set up our headers!
foreach($img_headers as $new_header)
{
header($new_header, TRUE);
}
// Read our image and end the rest of the file execution
return die(readfile($image_path));
아무것도?
미리 감사드립니다.
스크랩, 나는 그 의견으로 나 자신의 머리가 조금 이었어! 그런 간단한 오류를 놓쳤다는 것을 믿을 수 없습니다! * 한숨 * 대단히 감사합니다! 나는 지금 정말로 어리 석다! ㅎ – Azirius