Ваш код работает.Я не знаю, почему это не работает в вашей среде, но работает, как и ожидалось, на моей.Возможно, вы могли бы поделиться дополнительной информацией о среде, в которой вы ее используете.
- Какую операционную систему вы используете?
- Какой веб-сервер вы используете?
- Что-нибудь записывается в журнал ошибок веб-сервера?
В вашем коде используется несколько довольно устаревших конструкций.Переписанный на более современный Perl, он выглядит следующим образом:
#!/usr/bin/perl
use strict;
use warnings;
use CGI 'header';
use CGI::Carp qw(fatalsToBrowser);
my $files_location = "/home/netcool";
my $filename = 'Maintenance_File.csv';
if (!$filename) {
die "You must specify a file to download";
exit;
}
print header(
-type => 'application/octet-stream',
-content_disposition => "attachment;filename=$filename",
);
my $fileloc = "$files_location/$filename";
open my $fh, '<', $fileloc or Error('open', 'file', $!);
print while <$fh>;
close $fh or Error ('close', 'file' );
sub Error {
die "@_";
}
Но ни одно из моих правок не меняет основную работу вашего кода.Я предполагаю, что моя версия потерпит неудачу так же, как и ваша оригинальная.