mod_perl
我的网络应用程序使用 CGI::Application在 Apache 上运行。我想提供生成文件的下载。过去(在我们使用mod_perl
和 CGI::App 之前)我只是在生成 csv 文件时将STDOUT
其输出。现在我要进行更多改进 - 使用 Spreadsheet::WriteExcel 创建一个 Excel 电子表格 - 我似乎无法从文件句柄中打印出来。
sub export_list {
my $self = shift;
binmode(STDOUT);
my $str;
open my $fh, '>', \$str;
my $workbook = Spreadsheet::WriteExcel->new($fh);
my $worksheet = $workbook->add_worksheet();
$worksheet->write_col(0,0, ['some','data','here']);
warn $str;
return $str;
}
输出只是一个空白响应,警告也是空白。
我用来将电子表格写入文件句柄的方法几乎直接来自文档,所以我认为问题是由于我的一些 CGI::App noobery 造成的。该文档建议的文件句柄方法也mod_perl
被证明是徒劳的。
我想我应该提到我在 Windows 上运行,并且我当前的解决方法是创建一个文件并为用户提供指向它的链接。然而,这带来了更多问题,涉及清除目录和何时清除,以及访问生成文件的身份验证。
建议?严厉批评?