[Catalyst] Extra characters inserted into PDF output

Steve Sabljak steve at sabljak.org
Wed Dec 3 06:55:57 GMT 2008


On Wed, Dec 3, 2008 at 2:41 PM, Dr. Jennifer Nussbaum
<bg271828 at yahoo.com> wrote:
>
> --- On Tue, 12/2/08, Steve Sabljak <steve at sabljak.org> wrote:
>
>> From: Steve Sabljak <steve at sabljak.org>
>> Subject: Re: [Catalyst] Extra characters inserted into PDF output
>> To: "The elegant MVC web framework" <catalyst at lists.scsys.co.uk>
>> Date: Tuesday, December 2, 2008, 6:30 PM
>> On Wed, Dec 3, 2008 at 5:25 AM, Dr. Jennifer Nussbaum
>> <bg271828 at yahoo.com> wrote:
>> > --- On Tue, 12/2/08, Robin Berjon
>> <robin at berjon.com> wrote:
>> >
>> >> From: Robin Berjon <robin at berjon.com>
>> >> Subject: Re: [Catalyst] Extra characters inserted
>> into PDF output
>> >> To: bg271828 at yahoo.com, "The elegant MVC web
>> framework" <catalyst at lists.scsys.co.uk>
>> >> Date: Tuesday, December 2, 2008, 8:57 AM
>> >> On Dec 2, 2008, at 17:02 , Dr. Jennifer Nussbaum
>> wrote:
>> >> > My PDF files are being uploaded and saved in
>> the
>> >> database apparently correctly. Then what seems to
>> be
>> >> happening is that somewhere in the binary stream
>> of PDF,
>> >> there is a (random) sequence of "<!",
>> and
>> >> somewhere later there is a ">". And
>> something
>> >> is inserting a "--" before the
>> ">".
>> >> >
>> >> > My debugging statements show that Catalyst is
>> >> outputting the correct size of the file, which
>> suggests that
>> >> the insertion is happening elsewhere.
>> >>
>> >> The one thing you're not saying is under what
>> Catalyst
>> >> is running when it's producing that. Are you
>> running
>> >> FastCGI? Mod_perl? Stand-alone development server?
>> >
>> > This happens both under the standalone server and
>> under Apache/mod_perl.
>> >
>> >> If it happens in all of those then the bug is
>> probably in
>> >> your code (though after your debugging
>> statements).
>> >
>> > Ive shown all the code for the view, so you can see
>> anything that happens after the debugging....
>> >
>> >> If the
>> >> insertion is indeed happening outside that pretty
>> much just
>> >> leaves the Web server, or perhaps a proxy. Wild
>> stab in the
>> >> dark: do you happen to have SSI turned on?
>> >
>> > Yes, but only on the actual server. My dev box running
>> the standalone server isnt doing any SSI's.
>> >
>> > This is baffling.
>> >
>> > Jen
>> >
>>
>> So, if you use (literally)
>>
>> $c->res->output('XXXXX<!XXXXXX>XXXXX');
>>
>> does it output 'XXXXX<!XXXXX-->XXXXX'?
>> (you might want to change the content-type to text/plain
>> for this test
>> if testing with a browser)
>
> I dont know if this was a rhetorical question designed to show how stupid i am, or a real question, but the answer is "yes". Or, rather, if I change my output routine to
>
> $c->res->output('XXXXX<!XXXXXX>XXXXX'); $c->res->content_type('text/plain');
>
> Then what i get in my browser is:
>
> XXXXX<!--XXXXXX-->XXXXX
>
> Where does this leave me? WHY is this happening?
>
> Jen
>

No, not rhetorical or designed to do anything, just trying to narrow
down where it's happening. Do the extra characters get inserted when
you do this?

require bytes;

my $content = 'XXXXX<!XXXXXX>XXXXX';
$c->res->content_type('text/plain');
$c->res->content_length(bytes::length($content));
$c->finalize_headers
$c->write($content);

Does that still insert the unwanted chars?

-Steve



More information about the Catalyst mailing list