Combining ideas from both of you, I now have this (putting the file in a directory above the docroot so Apache can't serve it.):
$r->content_type('application/pdf');
$r->err_headers_out->add('Content-disposition' => ("attachment; filena
+me=$filename"));
my $fh;
open($fh,"</var/www/eddie/owner_release.pdf");
binmode $fh;
while(<$fh>) { $m->print($_); }
close $fh;
return;
And I get the same error message from Acrobat about the file being damaged. I do notice that the file is larger now than it should be. 14K -> 25K. Any other suggestions? | [reply] [d/l] |
the file is larger now than it should be. 14K -> 25K
How does the downloaded file differ from the original one, i.e. what are those additional 11k? Maybe that will give you a clue as to what's going wrong.
Other than that, I don't feel entitled to comment further, as I've never used Mason myself. But maybe this thread will help, which makes me think there might be "issues" delivering binary content via Mason, unless you know exactly what you're doing.
P.S. in my above reply I was thinking of binmoding the output handle, but taking a closer look, the $m->print() is not an IO::Handle method call (as I originally figured), but a Mason method call, which simply adds content to the output buffer. In other words, binmoding won't work here. Also, as you don't seem to be on Windows (as I infer from the above /var/www/...), there won't be any linefeed translations being done, anyway.
| [reply] [d/l] [select] |