사용자에게 PDF 파일을 표시하고 싶습니다. 내가 cgi를 사용하여 pdf를 표시하는 이유는 pdf에 대한 클릭을 추적하고 저장된 pdf의 실제 위치를 숨기고 싶기 때문입니다.
나는 인터넷에서 검색을 해왔고 사용자에게 파일을 표시하지 않고 사용자에게 저장 대화 상자를 표시하고 pdf를 만드는 방법 만 찾았습니다.
내가 원했던 것은 사용자에게 pdf를 만들거나 다운로드하지 않고 내 pdf 파일을 보여주는 것 입니다. 공식 PHP 문서에서 얻은 내용은 다음과 같습니다.
<?php
header('Content-type: application/pdf');
readfile('the.pdf');
?>
또한 내 Google 검색 결과 펄 코드 :
open(PDF, "the.pdf") or die "could not open PDF [$!]";
binmode PDF;
my $output = do { local $/; <PDF> };
close (PDF);
print "Content-Type: application/pdf\n";
print "Content-Length: " .length($output) . "\n\n";
print $output
루비로하면 제게 말씀 해주세요. 하지만 내 서버가 레일을 지원하는지 확실하지 않습니다.
pdf 처리와이 문제를 구현하는 방법에 대해 아무것도 모르기 때문에 내 코드가 pdf를 표시하는 방법에서 너무 멀다면 죄송합니다.
사용자에게 Adobe Reader 플러그인이 있다고 가정합니다. 그렇다면 내 문제를 해결하는 방법은 무엇입니까?
편집 : 일반 pdf 파일을 보여주고 싶습니다. 내 주요 목적은 내 pdf 파일을 추적하고 멋진 URL을 사용하는 것입니다.
편집 : 다음은 내 주요 PHP 코드입니다.
<?php
$file='/files/the.pdf';
header('Content-type: application/pdf');
header('Content-Disposition: inline; filename="the.pdf"');
@readfile($file);
?>
편집 : 이제 코드가 작동합니다. 그러나로드 진행률 표시 줄 (Adobe Reader X 플러그인에서)이 표시되지 않습니다. 왜? 누구든지 나를 도울 수 있습니까? 내 주요 코드는 다음과 같습니다.
<?php
$file='./files/the.pdf';
header('Content-type: application/pdf');
header('Content-Disposition: inline; filename="the.pdf"');
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . filesize($file));
@readfile($file);
?>
편집 : 내 모든 문제가 해결되었습니다. 최종 코드는 다음과 같습니다.
<?php
$file = './path/to/the.pdf';
$filename = 'Custom file name for the.pdf'; /* Note: Always use .pdf at the end. */
header('Content-type: application/pdf');
header('Content-Disposition: inline; filename="' . $filename . '"');
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . filesize($file));
header('Accept-Ranges: bytes');
@readfile($file);
?>
감사! :)