Создание серверных приложений на языке PERL


Примеры скриптов - часть 2


end_form; # напечатать

}

# Этот скрипт никому не мешает вводить мусор (например xxxx.gif) в поле foto,

# что приведет к созданию пустых файлов; если это Вас беспокоит, установите

# новую версию CGI.pm и прочтите

# http://stein.cshl.org/WWW/software/CGI/#upload

elsif (not sysopen FILE, "$DIR/$1", O_EXCL | O_CREAT | O_WRONLY, 0444)

{

print h1 ("Hе могу создать $DIR/$1: $!"); # ошибка или такой файл уже есть

}

# Портятся файлы при посылке? См. ниже!

else # все в порядке - файл создан

{

binmode FILE; # включить binmode для Windows

print FILE while (<$foto>); # и скопировать данные в файл

close FILE;

print h1 ('Сердечное Вам спасибо!'); # воспитывать как собак Павлова

}

print end_html; # напечатать

==========================


Если закачка некоторых файлов происходит с глюками - видимо, файл

перекодируется на лету русским апачем.

Варианты решения:


1.запретите все перекодировки для скрипта, который разбирает FileUpload,

например таким способом:


CharsetDisable On


и делайте перекодировку сами.


2.Используйте директиву CharsetRecodeMultipartForms, которая появилась в PL23,

но при этом вам все равно придется перекодировать вручную текстовые части

запросов. Для этого можно использовать Russian Apache API, доступное в других

модулях или Russian Apache Perl API, доступное из mod_perl.





Начало  Назад  Вперед