2012-04-15 2 views
0

나는 파일 업로드가있는 프로젝트에서 일하고 있습니다. 이 파일들은 임의의 이름으로 주어지며 웹 디렉토리의 바깥쪽에 배치됩니다.루핑, 일련의 헤더 및 ... 아무 일도 일어나지 않습니다.

그런 다음 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)); 

아무것도?

미리 감사드립니다.

답변

1

두 가지 방법이 동일해야합니다. "Content-Type :"의 추가 공간이 문제의 원인 일 수 있습니까?

+0

스크랩, 나는 그 의견으로 나 자신의 머리가 조금 이었어! 그런 간단한 오류를 놓쳤다는 것을 믿을 수 없습니다! * 한숨 * 대단히 감사합니다! 나는 지금 정말로 어리 석다! ㅎ – Azirius

0

foreach 루프를 다음으로 바꾸어보십시오. 공백이 논리 오류를 만드는 곳에서는 비슷한 문제가 발생했습니다.

foreach($img_headers as $new_header) 
{ 
    header(trim($new_header), TRUE); 
} 
+0

어쨌든 고마워요! :] – Azirius

+0

dangit 내가 가까웠다;) 그것이 기쁘다. – Cristian

관련 문제