Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Закачка файлов 
:(
    Опции темы
Гость_mcx
Дата 26.6.2004, 18:42 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











кто знает другие способы закачки файлов на сервер кроме использования возможностей модуля CGI
  Вверх
korob2001
Дата 26.6.2004, 20:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 13
Всего: 61



Вот пример без использования CGI.pm
Код

#-> Подпрограмма получает имя файла и имя каталога куда
#    нужно загрузить файл загружает его в указанную дерикторию
#    и возвращает true - если файл
#   успешно загружен и false если была ошибка
sub writeUploadFile {
  my $file = shift;
  my $dir  = shift;
  my $uri  = $file;
  my ( $size, $buff, $bytes );
       $size = $bytes = 0;
       $file =~ s/\s+$//;
       return(0) unless $file =~ /\.(?:gif|jpg)$/i;
       $file =~ s/\w://i;
       $file =~ s/([^\/\\]+)$//;
       $file = $1;
       $file =~ s/\.\.+//g;
       $file =~ s/^\s+//;
       $file =~ s/\s+//g;
       return(0) unless $file =~ /^(?:[A-Z,a-z,0-9]+\.(?:gif|jpg))$/i;
  local *SAVE;
   open (SAVE, ">$dir/$file") or die "Can\'t create file \"$dir/$file\": $!";
    binmode SAVE;
    while ($bytes = read($uri, $buff, 2096)) {
      $size += $bytes;
      print SAVE $buff;
    }
   close(SAVE) or die "Can\'t close file \"$dir/$file\": $!";
if ( -e "$dir/$file" ) {
   return(1);
} else {
   return(0);
}
}

Правда она загружает только файлы с расширением .gif, .jpg, но принип думаю понятен. Кстати не сложно сделать что бы, подпрограмма в качестве истинного значения передавала размер загруженного файла. Думаю размер, полезная информация при загрузке файла на сервер.

Удачи


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
lazarevmax_mcx
Дата 27.6.2004, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 26.6.2004

Репутация: нет
Всего: нет



спасибо за подпрограмму

толбко я чето непонял для чего нужна переменная
url?
file?
dir?
Добавлено @ 18:36
аа вижу $url=$file

ок все понятно
спасибо!!!

Это сообщение отредактировал(а) lazarevmax_mcx - 27.6.2004, 18:34
PM MAIL   Вверх
korob2001
Дата 28.6.2004, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 13
Всего: 61



Переменные $file и $dir получают параметры ( собственно это написано в начале кода, в коментариях ). Переменная $uri нам необходима как копия переменной $file, так как переменная $file будет приобразована до имени файла (путь к файлу вырезается). При чтении файла с помощью read($uri, $buff, 2096) нам необходимо в первом параметре передать не только имя файла, но и путь к нему. Потому нам нужна копия переменной $file.
Переменная $file преобразуется до имени фала для того, что бы на сервере файл был с тем же именем, что и на машине юзера.

Удачи.


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
Sable
Дата 31.8.2004, 09:24 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Модель Net::FTP. Все примеры есть в man'e.
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: CGI программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к CGI программированию
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", качать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: разработка для Web | Следующая тема »


 




[ Время генерации скрипта: 0.0456 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.