2016-10-31 3 views
0

브라우저에 PDF가 표시된 PHP 페이지를 사용하고 있습니다. PDF의 내용이 세션 변수에 있습니다.앱 엔진이 PHP 페이지에서 html 헤더를 제거합니까?

내 서버에서이 페이지를 사용하면 완벽하게 작동하며 PDF를 볼 수 있으므로 볼 수 있습니다.

내가 잘못하고있는 중이 야 내가 얻을 앱 엔진에서이 같은 페이지에 "%의 PDF - 1.7 % ..."

를 사용하는 경우? 여기

내가
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 
</head> 

<body> 
<?php 
// Inserción de parametros y de funciones 
require_once("RKR_P_Parametros.php"); 
require_once("tUnua_Funciones.php"); 

session_start(); 

$ArchivoPDF = LeerVariableSesion("ArchivoPDF"); 
$NombreArchivoPDF = LeerVariableSesion("NombreArchivoPDF"); 

header('Content-Type: application/pdf'); 
header('Content-Disposition: inline; filename="'.$NombreArchivoPDF.'"'); 
header('Cache-Control: private, max-age=0, must-revalidate'); 
header('Pragma: public'); 

echo $ArchivoPDF; 
?> 
</body> 

여러분의 도움에 감사드립니다 사용하는 페이지의 코드입니다.

Jean-Daniel Mâlet.

-

+0

이미 데이터를 출력 한 후에는 HTTP 헤더를 보낼 수 없습니다. 출력이 버퍼링되기 때문에 아마 서버에서 빠져 나가고있을 것입니다. – Phylogenesis

+0

안녕 Phylogenesis, 당신이 쓴 것을 이해하지만 헤더를 보낸 후 데이터를 출력한다고 생각합니다. 마지막 명령 인 "echo $ ArchivoPDF"로 데이터를 출력합니다. 내가 틀렸어? –

답변

0

I'v 출력 버퍼링을 중심으로 조사하고 내가 최선을하지 않을 수있는 솔루션을 발견했습니다 ...

내가 먼저 내 앱 엔진에의 php.ini 파일을 추가 프로젝트 :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 

<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 
</head> 

<body> 
<?php 
// Inserción de parametros y de funciones 
require_once("RKR_P_Parametros.php"); 
require_once("tUnua_Funciones.php");  

session_start(); 
$NombreArchivoPDF = LeerVariableSesion("NombreArchivoPDF"); 

function RKR_VPDF_Callback($Buffer) 
{ 
    $ArchivoPDF = LeerVariableSesion("ArchivoPDF"); 
    $Buffer .= $ArchivoPDF; 
    return $Buffer; 
} 

ob_start(RKR_VPDF_Callback); 

header('Content-Type: application/pdf'); 
header('Content-Disposition: inline; filename="'.$NombreArchivoPDF.'"'); 
header('Cache-Control: private, max-age=0, must-revalidate'); 
header('Pragma: public'); 

ob_flush(); 

?> 
</body> 

그리고 작업 : 다음 내 PHP 코드 이런 식으로 수정

output_buffering = 12288 

에드.

관련 문제