Автор Тема: Неправильно загружается файл с сервера Apache  (Прочитано 1959 раз)

0 Пользователей и 1 Гость просматривают эту тему.

  • Гость
Такая проблема: написал скрипт, чтобы в зависимости от уровня пользователя у него грузился один из трех файлов.
Все происходит Ок, файл загружается, но... не открывается, почему-то WinZip его поврежденным показывает....
Прилагаю исходник на перле, кстати htaccess строчку "CharsetDisable on" - я прописал (собственно в этом
каталоге она у меня единственная строчка в htaccess\'е).

# Читаем данные формы


read(STDIN, $buffer, $ENV{\'CONTENT_LENGTH\'});
@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
   ($name, $value) = split(/=/, $pair);
   $value =~ tr/+/ /;
   $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
   $value =~ s///g;
   if ($allow_html != 1) { $value =~ s/<([^>]|\\n)*>//g; }
   $FORM{$name} = $value;
 }




# Проверяем уровень пользователя
$levid=$FORM{\'userid\'};
$level=$levid;

# Открываем file пользователю

if ($level=1) {
&downllev1;
}
elsif ($level=2) {
&downllev2;
}
elsif ($level=3) {
&downllev3;
}
else {
#нет доступа
&return;
}


exit(0);


sub downllev1 {
# Загрузка для уровня 1

$price_file="files/level1/dealer_price1.zip";

&file;
exit;
}
 
sub downllev2 {
# Загрузка прайса для уровня 2

$price_file="files/level2/dealer_price2.jpg";

&file;
}

sub downllev3 {
# Загрузка прайса для уровня 3

$price_file="files/level3/dealer_price3.jpg";

&file;

}

sub return {

$price_tt="/dealers.htm";

print "Location: $price_tt\\n\\n";
exit;
}

sub file {
my $file=$price_file;
my $filesize = -s $file;
$filename="CopyRus_Dealer_price.zip";


print "Content-length: $filesize\\n";
print "Content-Disposition: attachment; filename=$filename\\n";
print "Content-type: application/x-zip-compressed\\n\\n";

open(FILE, "$price_file");
           
 binmode FILE;
 {
 local $/ = \\4096; # sending in 4k blocks
 print while ;
 }
 close(FILE);

}

Оффлайн Chs

  • Perl программер
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1108
  • +0/-0
  • 2
    • Просмотр профиля
    • http://chs.now.at/
Неправильно загружается файл с сервера Apache
« Ответ #1 : 04 Марта 2002, 14:50:39 »
Цитировать

open(FILE, "$price_file");

binmode FILE;
{
local $/ = \\4096; # sending in 4k blocks
print while ;
}
close(FILE);

binmode STDOUT;
2B OR NOT 2B = FF

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28