使用file ::复制失败在mod_perl下使用图像



我有一个CGI脚本,该脚本使用文件::复制CPAN模块使用图像:

use File::Copy;
.... (set appropriate content header)
binmode STDOUT;
copy $imageFile, *STDOUT || die "Image delivery failed: $!";

这在CGI下工作正常,但是当在mod_perl下运行时,我会得到:

[File::Copy::copy 140]  stat() on unopened filehandle STDOUT at /usr/share/perl/5.14/File/Copy.pm line 140.

我不确定这是预期的行为还是某处是否有错误。我是MOD_PERL的新手,发现我目前正在文档中淹死。有什么方法可以更改我的脚本,因此它在CGI或MOD_PERL下运行良好?

来自mod_perl文档

在mod_perl,core :: print()下(使用stdout作为filehandle参数或根本没有filehandle)将将输出重定向到apache :: print(),因为stdout文件句柄绑定到apache。

,如果perltie

,则来自"错误"部分

绑定的filehandles仍然不完整。sysopen(),truncate(),flock(),fcntl(),stat()和-x当前无法捕获。

您可以在https://rt.perl.org/rt3//public/bug/display.html?id=112164中的错误报告中阅读有关此信息的更多信息。

除非您愿意更改文件:: copy或mod_perl(以负面方式)。文件::复制期望与系统文件句柄关联的文件句柄,但Stdout是绑定的文件句柄。

相关内容

  • 没有找到相关文章

最新更新