파일을 특수 헤더로 보내 강제 다운로드하려고합니다. 그렇게 할 때, 다운로드 스크립트를 통해 PDF 문서에 대한 URL 요청을 리디렉션해야합니다.file_get_contents() 및 stream_get_contents()에서 스트림을 열지 못했습니다.
$ seg3이라는 쿼리를 전달하기 전에 base64_encode()를 보낸 다음 파일을 요청할 때 base64_decode() 및 urlencoded()를 전달합니다.
내가 사용에서 살펴 보았다,
if (ini_get('allow_url_fopen') == '1')
{
$data = file_get_contents(urlencode(base64_decode($seg3)));
}
else
{
$fp = fopen(urlencode(base64_decode($seg3)), 'rb');
$data = stream_get_contents($fp);
fclose($fp);
}
그러나 모두 file_get_contents()
및 stream_get_content()
가 실패 : 나는 전송되는 URL을 덤프하면 그러나, 나는 복사 할 수 있습니다
fopen($URL): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
및 내 브라우저에 붙여넣고 파일을 엽니 다.
파일에 공백이있는 경우에만 발생하지만 urlencode()
을 사용했는지 여부에 관계없이 오류가 발생합니다.
'allow_url_fopen' 체크가 중복되어 보입니다. 'fopen'과'file_get_contents'는 모두 의존합니다. 비활성화 된 경우 'fopen'도 실패합니다. – hakre