Копирование файлов с web на ftp сервер

insidex

флихтэръер
Копирование файлов с web на ftp сервер

Подскажите,что я неправильно делаю.
Написал простейший скрипт,для копирования файла из одной директории в другую, на том же сервере.Однако стоит только указать в качестве второй директории адрес типа "ftp://myhost/test" как выкидывается куча всяких сообщений,типа "доступ запрещен" и т.д,хотя на папке test установлены все права на полный доступ.

Все проворачивал на localhost.WEB сервером был Денвер,FTP сервером был Faststream NetFile FTP, копировал через функцию

PHP:
copy
 

Фанат

oncle terrible
Команда форума
Подскажите,что я неправильно делаю.
- используешь термин "копирование с web на ftp сервер".
- используешь команду copy для "копирования" "с web на ftp"
- не читаешь СМЫСЛ сообщений об ошибках, которые тебе пишут, а вместо этого пугаешься и бежишь к мамочке.
 

ForJest

- свежая кровь
insidex
укажи логин и пароль в URL
типа
ftp://login:pass@myhost/test
 

insidex

флихтэръер
Во-первых,ты мне не мамочка,начнем с этого.
Во-вторых,чем тебе не нравится термин "копирование"?!
насчет команды copy,дык я поэтому и написал,чтобы мне разъяснили,что это некорректная команда,на том и спасибо.
 

ForJest

- свежая кровь
insidex
команда корректная, если разрешены url wrappers
[m]copy[/m] прочитай документацию
 

insidex

флихтэръер
она у меня выполняется,только вот результатом ее является ошибка

PHP:
Warning: copy(ftp://...@myhost/testfile.rar): failed to open stream: FTP server reports 213 0 in z:\home\myhost\www\copy.php on line 23
На line 23 как раз и находится команда copy
 

Фанат

oncle terrible
Команда форума
insidex
Да, мамочка. и папочка в одном лице.
если ты прибежал ко мне жаловаться, вместо того, чтобы прочитать, что тебе пишут.
термин копирование мне не нравится тем, что ты не различаешь локальную систему, удалённый веб-сервер, удалённый фтп-сервер. на всё у тебя одна команда - copy.

если ты хочешь работать из локальной, по отношению к пхп скрипту, системы с удалённым фтп сервером, то и используй специальные команды ftp
 

insidex

флихтэръер
А если речь идет о двух локальных серверах? С удаленным ftp сервером использую команду
PHP:
  ftp_get($connect, $local_file, $remote_file, FTP_BINARY);
А с локальным? такое вот не проходит:
PHP:
 <?php
$file = 'test.txt';
$newfile = 'ftp://user:рass @myhost/example.txt';

if (!copy($file, $newfile)) {
   echo "не удалось скопировать $file...\n";
}
?>
 

SiMM

Новичок
> А если речь идет о двух локальных серверах?
Какая разница? С точки зрения твоей задачи есть только файловая система и удалённый сервер. Если файловая система тебе не подходит - значит ты имеешь дело с удалённым сервером.
 

ForJest

- свежая кровь
insidex
А если набрать в IE
ftp://login:pass@myhost/test

то что выдаёт?
 

SiMM

Новичок
> В моем случае ведь удаленных серверов нет,и что тогда мне мешает использовать copy?
Я бы сказал - что мешает обращаться к файлу как к элементу файловой системы?
Остальное тебе выше уже сказали + файрвол.
 

Фанат

oncle terrible
Команда форума
если у тебя нет удалённых серверов, то зачем ты пытаешьсы копировать по фтп, а не просто скопировать файл из одной папки в другую?
 

insidex

флихтэръер
файрвола у меня нету,брандмауэр отключен,все выше перечисленное-мой код,который не работает в моей ситуации плюс язвительные комментарии,вместо которых можно было бы написать действительно хоть что-то полезное(

-~{}~ 06.11.05 13:18:

Фанат

Ты знаешь,что такое локальная сеть?
 

ForJest

- свежая кровь
insidex
213 это file status
Попробуй указвать просто директорию, без имени файла. И спроси у админа, если есть знакомый что такое 213 и с чем может быть связано.
Не факт, что PHP идеально работает с FTP для url wrappers.
Какая у тебя версия PHP?
 

Profic

just Profic (PHP5 BetaTeam)
Гы. Пациент не въезжает, что его локальная сеть с точки зрения его(?) машины есть на самом деле удаленный сервер...
 

ForJest

- свежая кровь
Profic
А какая собственно говоря разница?
insidex
If dest is a URL, the copy operation may fail if the wrapper does not support overwriting of existing files.

-~{}~ 06.11.05 12:32:

По-моему это вы с Фанатом не въезжаете.
Функция copy позволяет копировать между удалёнными хостами. По крайней мере эта её способность задекларирована. А вы ему тут начинаете протирать полную чушь.

-~{}~ 06.11.05 12:34:

You can open files for either reading or writing, but not both simultaneously. If the remote file already exists on the ftp server and you attempt to open it for writing but have not specified the context option overwrite, the connection will fail. If you need to overwrite existing files over ftp, specify the overwrite option in the context and open the file for writing
Так что, дорогие, хватит лаять на человека, а давайте лучше разберёмся с этой ситуацией.

-~{}~ 06.11.05 12:36:

Короче в PHP4 разрешена запись по FTP только для новых файлов. В PHP5 можно настроить перезапись.
 

Фанат

oncle terrible
Команда форума
никто не лает.
ему сказали сто лет назад
если ты хочешь работать из локальной, по отношению к пхп скрипту, системы с удалённым фтп сервером, то и используй специальные команды ftp
и не надо никаких извратов от дебильных разработчиков пхп, "облегчающих" жизнь дебильным юзерам пхп.
 

ForJest

- свежая кровь
Фанат
Короче я так понял тебе нечего сказать конкретно по поводу вопроса. Почему бы тебе вежливо не заткнуться тогда (я считаю это правильным поведением в подобной ситуации)?
С моей точки зрения одного раза изложения про "правильные функции" и отказа человека использовать их вполне достаточно.
А сейчас ты лишь мешаешь разобраться в сути проблемы. Может это баг в PHP. Ты мешаешь сделать PHP лучше.
 
Сверху