Автор Тема: NET::FTP и upload  (Прочитано 5100 раз)

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

Оффлайн pirojok

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 12
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
NET::FTP и upload
« : 08 Декабря 2005, 02:59:06 »
Хочу организовать upload файлов на сервер через NET::FTP, только не пойму как заставить его заливать файлы...
А делаю собствено вот так:

Код:   
#!/usr/bin/perl
use CGI qw(:all);
use CGI::Carp qw(fatalsToBrowser);
use Net::FTP;
$ftp = Net::FTP->new("fatal.ru") or die "Can\'t connect: $@\\n";
$ftp->login(\'пароль\', \'логин\') or die "Couldn\'t login\\n";
$ftp->cwd(/site) or die "Couldn\'t change directory\\n";
$ftp->put(param(filename) or die "Couldn\'t put $filename\\n";
print header;
print \'good!\';
exit;   


$ftp->put(param(filename) or die "Couldn\'t put $filename\\n"; в этой строчке на протык, выдаёт ошибку Couldn\'t put!!!
Подскажите как правильно..., и какие тут есть подводные камни?

Оффлайн AnnA

  • Фанатка форума
  • Старожил
  • ****
  • Сообщений: 263
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
NET::FTP и upload
« Ответ #1 : 08 Декабря 2005, 11:50:15 »
$ftp->put(param(filename) or die "Couldn\'t put $filename - $!\\n";
и посмотрите ошибку.
и, похоже, Вы забыли скобочку:
put(param(filename) or die "Couldn\'t put $filename
открылись 2, закрылась одна.
param(filename) лучше, imho, забирать в переменную. я бы поступила именно так. :)
используйте
#!/usr/bin/perl -w
use strict;
пока-пока. :)

Оффлайн pirojok

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 12
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
NET::FTP и upload
« Ответ #2 : 09 Декабря 2005, 03:11:41 »
Впринцыпе так и сделал!Спасибо.
#!/usr/bin/perl
use CGI qw(:all);
use CGI::Carp qw(fatalsToBrowser);
use Net::FTP;    
my $filename=param(filename);
#$filename=\'E:/WEB/shttps/www/1.doc\';
$ftp = Net::FTP->new("fatal.ru") or die "Can\'t connect: $@\\n";
$ftp->login(\'xxx\', \'xxx\') or die "Couldn\'t login\\n";
#$ftp->cwd(/site/) or die "Couldn\'t change directory\\n";
$ftp->binary();  
$ftp->put($filename) or die "Couldn\'t put $filename\\n";
print header;
print $filename;
exit;

Ситуация следующая, с моего компа я запускаю этот скрипт он заливает файл на фатал без проблем...
Но вот когда запускаю скрипт на фатале и пытаюсь со своего компьютера загрузить файл на фатал через этот скрипт пишет Bad file descriptor.
В чём дело?

Оффлайн AnnA

  • Фанатка форума
  • Старожил
  • ****
  • Сообщений: 263
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
NET::FTP и upload
« Ответ #3 : 09 Декабря 2005, 12:01:54 »
pirojok. :)
по-моему вам следует заглянуть сюда -> http://faq.webscript.ru/PFSEUpload?v=wzo
пока-пока. :)

Оффлайн pirojok

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 12
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
NET::FTP и upload
« Ответ #4 : 09 Декабря 2005, 14:01:22 »
AnnA :)
Ты меня скорее всего не поняла...
Задача стоит следующая:
т.к. сайт мой находится на бесплатном хостинге фатал, там существует ограничение на объём данных передаваемые методом post и составляет он порядка 500 кб.Тот скрипт на который ты мне дала ссылку, как раз и передаёт данные методом post/get, у меня сейчас впринцыпе так и реализован аплод.
Вот я и решил, нельзя ли закачивать файлы на сервер используя протокол FTP и соответственно модуль NET::FTP.
И меня интересует можно ли это сделать?

ЗЫ:Зарание спасибо!

Оффлайн arto

  • Ветеран
  • *****
  • Сообщений: 699
  • +0/-0
  • 2
    • Просмотр профиля
NET::FTP и upload
« Ответ #5 : 09 Декабря 2005, 16:06:11 »
можно, если:
1. у вас есть ftp сервер.
2. вам разрешено использовать  ftp на хостинге.

Оффлайн AnnA

  • Фанатка форума
  • Старожил
  • ****
  • Сообщений: 263
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
NET::FTP и upload
« Ответ #6 : 09 Декабря 2005, 16:11:57 »
Цитировать
pirojok:Вот я и решил, нельзя ли закачивать файлы на сервер используя протокол FTP и соответственно модуль NET::FTP.
конечно можно.
насколько я поняла - это у вас уже реализовано:
Цитировать
pirojok:с моего компа я запускаю этот скрипт он заливает файл на фатал без проблем...
но
Цитировать
pirojok:Но вот когда запускаю скрипт на фатале и пытаюсь со своего компьютера загрузить файл на фатал через этот скрипт

этот же скрипт не будет работать с сервера хостинга.
(вернее - может, но для этого вам нужно будет настроить ftp-доступ на компъютер с которого вы выходите в интернет).
что бы закачивать файлы скриптом с хостинга следует использовать тот скрипт, ссылку на который я давала. :)
или проблема именно в том, что бы научить ваш локальный скрипт, использующий NET::FTP, не закачивать файлы свыше 500кб? :)
пока-пока. :)

Оффлайн pirojok

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 12
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
NET::FTP и upload
« Ответ #7 : 09 Декабря 2005, 16:25:20 »
Как раз фишка в том, что бы преодалеть ограничение в 500 кб!
Блин наверное я всё таки не правильно объясняю...простите:(

Мне нужно что бы пользователь через форму на сайте мог загрузить больше чем 500 кб...для этого я и решил использовать модуль NET::FTP, вот только не получается:(
arto ftp на хостинге разрешён, через него всё и делается...т.е. заливаются скрипты, картинки и т.д.

Оффлайн AnnA

  • Фанатка форума
  • Старожил
  • ****
  • Сообщений: 263
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
NET::FTP и upload
« Ответ #8 : 09 Декабря 2005, 16:36:49 »
понятно. вы просто не чувствуете разницы между клиентом и сервером. :)
Цитировать
arto:
2. вам разрешено использовать ftp на хостинге.

именно ВАМ, а не ДЛЯ вас.
Цитировать
pirojok: ftp на хостинге разрешён, через него всё и делается...

:) на всех хостингах установлена как бы "слушающая" сторона. Вы же хотите активировать "передающую" часть хостера. Об этом вам и сказал arto. :) надеюсь - понятно объяснилась.
Цитировать
pirojok:
Мне нужно что бы пользователь через форму на сайте мог загрузить больше чем 500 кб...для этого я и решил использовать модуль NET::FTP, вот только не получается

это невозможно. увы. по вышеописаным причинам.
пока-пока. :)

 

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