1

.pdf ファイルからコードを取得して、別の pdf ファイルにコピーする必要があります。ファイルを開くために書いたコードは次のとおりです。

<%args>
$fullname
$filename

</%args>
<%init>
use IO::File;

$r->content_type('application/pdf');
$r->header_out( 'Content-disposition' => "attachment; filename=$filename" );


my $tmpfile = $filename;
my $forread = new IO::File "< $fullname";

my @lines = <$forread>;


foreach my $key (@lines){ 
      print $key;
       }

return $fullname;

</%init>

ここで、filename は PDF コンテンツを保存するファイルの名前で、"fullname" はコンテンツを取得する PDF です。

4

1 に答える 1

2

現在、テキスト ファイルを読み込んでいます。binmode最初に非テキスト (PDF など) を使用する必要があります。また、間接オブジェクト構文は絶対に使用しないでください。

my $fh = IO::File->new($fullname, 'r');

$fh->binmode(1);

だから、メイソンブックから改作されたこのようなものを試してみてください.

use Apache::Constants qw(OK);

my $fh = IO::File->new($fullname, 'r');

$fh->binmode(1);

$m->clear_buffer; # avoid extra output (but it only works when autoflush is off)

$r->content_type('application/pdf');
$r->send_http_header;

while ( my $data = $fh->getline ) {
    $m->print($data);
}
$fh->close;

$m->abort;
于 2012-11-12T22:15:10.943 に答える