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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вопрос по Net::FTP::File 
:(
    Опции темы
zet36
Дата 9.7.2008, 08:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



хочу заюзать модуль http://search.cpan.org/~dmuey/Net-FTP-File-0.05/File.pm для передачи файла со своего компа на свой ftp сервер 

Код

use Net::FTP::File;

my $ftp = Net::FTP->new("fanera.6te.net", Debug => 0) or die "Cannot connect to some.host.name: $@";
$ftp->login("логин",'пароль') or die "Cannot login ", $ftp->message;

$file="файл который нужно переместить.txt";
$newfile="файл который будет сохранён на сервере.txt";


$ftp->move($file,$newfile) or warn $ftp->message;
$ftp->chmod(777, $newfile) or warn $ftp->message;


но ничего невыходит, пишет ошибку 
Цитата

copy 3.txt to 3.txt falied^ they are the same file

Исправте пожайлусто что не так
PM MAIL   Вверх
shamber
Дата 9.7.2008, 08:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1422
Регистрация: 5.9.2006
Где: Россия

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



Код

copy 3.txt to 3.txt falied^ they are the same file


может название файла изменить?
PM MAIL Jabber   Вверх
zet36
Дата 9.7.2008, 09:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



хы странно изменил значение $newfile на 4.txt
пишет


Цитата

Unable to delete original file 3.txt after copy
net_cmd_resp: could not delete 3.txt: No soch file of directory



как я понял скрипт неможет удалить оригинальный файл из за того что его нет в заданной директории, очень странно ведь во первых файл лежит в той же папке что и скрипт а во вторых зачем он пытается его удалить?

аа понял изменил $ftp->move($file,$newfile) на  $ftp->copy($file,$newfile)

но пишет 

Цитата

"/" is your current location
Could not change perms on 4.txt: No soch file of directory




Это сообщение отредактировал(а) zet36 - 9.7.2008, 09:12
PM MAIL   Вверх
shamber
Дата 9.7.2008, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1422
Регистрация: 5.9.2006
Где: Россия

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



полные пути должны быть, как мне кажется
PM MAIL Jabber   Вверх
Nab
Дата 9.7.2008, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Ребят, вы чет путаете. Если кто работал с FTP вручную просто из командной строки то должен знать что для отправки или принятия файлов используються команды get и put, а модуль Net::FTP::File вообще предназначен для манипулирования файлами только на удаленном узле, он не для копирования.

Объясните чем не подходят стандартные методы Net::FTP->get и put?

А вообще читайте документацию внимательно smile .


--------------------
 Чтобы правильно задать вопрос нужно знать больше половины ответа...
Perl Community 
FREESCO in Ukraine 
PM MAIL   Вверх
shamber
Дата 9.7.2008, 12:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1422
Регистрация: 5.9.2006
Где: Россия

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



 smile 

Вот так всегда smile 
perldoc спасет мир smile
 smile 

Это сообщение отредактировал(а) shamber - 9.7.2008, 12:42
PM MAIL Jabber   Вверх
zet36
Дата 9.7.2008, 18:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Nab @ 9.7.2008,  11:34)
Ребят, вы чет путаете. Если кто работал с FTP вручную просто из командной строки то должен знать что для отправки или принятия файлов используються команды get и put, а модуль Net::FTP::File вообще предназначен для манипулирования файлами только на удаленном узле, он не для копирования.

Объясните чем не подходят стандартные методы Net::FTP->get и put?

А вообще читайте документацию внимательно smile .

 smile  
и с get и put у меня конфуз

Код

 use Net::FTP;

my $ftp = Net::FTP->new("fanera.6te.net", Debug => 0) or die "Cannot connect to some.host.name: $@";
$ftp->login("логин",'пароль') or die "Cannot login ", $ftp->message;

$file="C:\\3.txt";

$ftp->cwd("/");

$ftp->put($file) or die $ftp->message;

$ftp->quit;


пишет

Цитата

I won't open a connection to 0.0.0.0 (only to 78.132.170.177)


нужно ещё 21 порт открывать для соединения?

Это сообщение отредактировал(а) zet36 - 9.7.2008, 18:41
PM MAIL   Вверх
AlexPet
Дата 10.7.2008, 07:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(zet36 @  9.7.2008,  18:39 Найти цитируемый пост)
нужно ещё 21 порт открывать для соединения?

А разве ftp у Вас использует какой-то другой порт?  smile 

Это сообщение отредактировал(а) AlexPet - 10.7.2008, 07:53
PM MAIL ICQ Jabber   Вверх
zet36
Дата 10.7.2008, 09:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



AlexPet я имею в виду нужно ли в скрипте его открывать какой либо функцией или он открывается автоматически при use Net::FTP? или же этот модуль только для локального использования для винды?

Цитата

(only to 78.132.170.177)


Это сообщение отредактировал(а) zet36 - 10.7.2008, 09:59
PM MAIL   Вверх
AlexPet
Дата 10.7.2008, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Хм, ну вообще-то открытие и закрытие портов никаким образом не зависит от перловского скрипта.
PM MAIL ICQ Jabber   Вверх
tolkien
Дата 10.7.2008, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Это модуль для работы по протоколу FTP. Работает везде где есть его поддержка. 

Короче возможно у вас проблема с настройками вашего FTP сервера. Для проверки этого. Возмите клиент FTP например WinCmd и попробуйте при коннектиться к серверу. Если у вас все через него будет работать. Значит сервак настроен нормально. И искать проблему нужно в вашем скрипте.
PM MAIL   Вверх
shamber
Дата 10.7.2008, 12:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1422
Регистрация: 5.9.2006
Где: Россия

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



ПРоверьте, что у вас firewall не закрывает порты
PM MAIL Jabber   Вверх
zet36
Дата 11.7.2008, 09:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(tolkien @  10.7.2008,  11:56 Найти цитируемый пост)
Короче возможно у вас проблема с настройками вашего FTP сервера. Для проверки этого. Возмите клиент FTP например WinCmd и попробуйте при коннектиться к серверу. Если у вас все через него будет работать. Значит сервак настроен нормально. И искать проблему нужно в вашем скрипте

у меня стоит SmartFTP  и работает нормально

Цитата(shamber @  10.7.2008,  12:51 Найти цитируемый пост)
ПРоверьте, что у вас firewall не закрывает порты


у меня не стоит firewall ))
PM MAIL   Вверх
nitr
Дата 11.7.2008, 19:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

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



zet36, как уже сказали, всё должно работать, скрипт рабочий:

Код
#!perl
use strict;
use warnings;
 
use Net::FTP;

my $host = '';
my $login = '';
my $passwd = '';

my $file_put = "C:\\3.txt";
my $file_get = "/3.txt";

my $ftp = Net::FTP->new($host, Debug => 0) or die "Cannot connect to some.host.name: $@";
$ftp->login($login, $passwd) or die "Cannot login ", $ftp->message;

$ftp->cwd("/") or die $ftp->message;

$ftp->put($file_put) or die $ftp->message;
print "Put: ok\n";

unlink $file_put or die "Can't find file $file_put\n";
print "Delete: ok\nPress 'Enter'\n";
<STDIN>;

$ftp->get($file_get) or die $ftp->message;
print "Get: ok\n";

$ftp->quit;


Добавлено через 14 минут и 33 секунды
Цитата
Put: ok
Delete: ok
Press 'Enter'

Get: ok



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


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

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


 




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


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

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