我有一个CGI脚本,它从HTML页面生成一个.pdf文件。我的问题是,当从Web浏览器启动时,没有创建.pdf文档。
我到目前为止所做的事:
.cgi脚本工作为什么脚本在从web浏览器运行时不能工作?
#!/usr/bin/perl
use LWP::Simple;
use HTML::HTMLDoc;
use CGI;
print "Content-type: text/html\n\n";
print "<html><head><title>test</title></head>";
print "<body>";
my $htmldoc->set_html_content(qq~<html><body>A PDF file</body></html>~);
my $pdf = $htmldoc->generate_pdf() or die($!);
$pdf->to_file('/var/www/tom.pdf');
print "</body></html>";发布于 2009-05-28 10:41:12
在哪里将生成的文件发送到浏览器?
请注意,您不能在HTML中嵌入PDF;您必须
application/pdf,然后只返回该文件(其中没有任何HTML标记)。发布于 2014-10-05 16:05:10
最可能的原因是/var/www不能写到apache (或者您正在使用的任何web服务器),所以如果您从命令行运行它--具有用户的权限--它会成功,但是当从web浏览器调用时,web服务器使用自己(非常有限)的权限运行它,然后写入失败。
您需要首先检查to_file方法的返回代码,以查看写入是否成功,其次,将其写入允许web服务器写入的目录,例如/var/tmp。
https://stackoverflow.com/questions/271583
复制相似问题