[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как переместить каталог с файлами через FTP?
Arni
Помогите плиз разобраться как средствами php + ftp сделать перемещение каталога вместе с его содержимым. Первый раз столкнулся с таким, перелистал функции по ftp, но почемуто не нашел нужных мне инструментов.



Спустя 9 часов, 47 минут, 25 секунд (7.02.2011 - 09:17) linker написал(а):
Подробнее пожалуйста, откуда и куда переместить? От этого мелкого нюанса зависит собственно вся реализация.

Спустя 1 час, 15 минут, 14 секунд (7.02.2011 - 10:33) Arni написал(а):
Я посмотрел что делает File Zilla.

Цитата

Команда: RNFR themes
Ответ: 350 File or directory exists, ready for destination name
Команда: RNTO /data/www/3-tsumi.ath.cx/CVS/functions/themes
Ответ: 250 Rename successful



Походу тут просто переименование. Буду пробовать сегодня.

Что собственно меня интересует.

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

Спустя 32 минуты, 24 секунды (7.02.2011 - 11:05) nugle написал(а):
total commander Не подойдёт? или ты хочешь скриптом?

Спустя 2 минуты, 56 секунд (7.02.2011 - 11:08) linker написал(а):
Собственно переименование и есть перемещение. Ниже список необходимых функций:
ftp_connect();
ftp_login();
ftp_pasv(); // Возможно понадобится пассивный режим, всяко бывает
ftp_nlist();
ftp_rename();
ftp_close();

Спустя 29 минут, 19 секунд (7.02.2011 - 11:37) Arni написал(а):
Цитата (nugle @ 7.02.2011 - 08:05)
total commander Не подойдёт? или ты хочешь скриптом?

Хочу скриптом.


to: linker

Уже дошло. И уже пробую. Зациклился вчера на ночь глядя wink.gif .

За функции огромное спасибо biggrin.gif. Конечно же я их сам нашел. Просто мне вот хотелось что-то типа

ftp_move(); wink.gif

Спустя 4 минуты, 3 секунды (7.02.2011 - 11:41) linker написал(а):
ftp_rename() делает именно то, что тебе хотелось.

Спустя 40 минут, 8 секунд (7.02.2011 - 12:21) Arni написал(а):
Проблема вот в чем.

Цитата
$answer1 = ftp_raw($conn_id, "RNFR /data/www/3-tsumi.ath.cx/folder");
$answer2 = ftp_raw($conn_id, "RNTO /data/www/");


Возвращает Directory not empty.

Если кто подскажет быстрее как это обойти пока я ищу сам, буду благодарен.

Через функцию ftp_rename() получаем тот же результат.

Спустя 2 часа, 15 минут, 53 секунды (7.02.2011 - 14:37) linker написал(а):
Arni
Все правильно, подумай возможно ли переименовать каталог /data/www/3-tsumi.ath.cx/folder в каталог /data/www/? Нет. Мало того, что /data/www/ не пустой, так еще и содержит внутри себя сам перемещаемый каталог /data/www/3-tsumi.ath.cx/folder

Спустя 1 час, 18 минут, 8 секунд (7.02.2011 - 15:55) Arni написал(а):
Эта мысль меня уже тоже посетила. wink.gif .

Ок, что же в этот раз мешает?

Цитата
$answer1 = ftp_raw($conn_id, "RNFR /data/update");
$answer2 = ftp_raw($conn_id, "RNTO /data/www/3-tsumi.ath.cx");


3-tsumi.ath.cx не пустой, более того я хочу чтобы перезаписало старые файлы. Вот это и есть моя задача.

Спустя 32 минуты, 15 секунд (7.02.2011 - 16:28) Arni написал(а):
Нельзя сделать то что я хочу.
Если каталог не пустой значит нужно организовать перезапись каждого файла в отдельности.

Тему можно закрывать.

linker Спасибо.

Спустя 2 минуты, 13 секунд (7.02.2011 - 16:30) Zerstoren написал(а):
Цитата (Arni @ 7.02.2011 - 13:28)
Нельзя сделать то что я хочу.
Если каталог не пустой значит нужно организовать перезапись каждого файла в отдельности.

Тему можно закрывать.

linker Спасибо.

Мб рекурсивный скрипт который будет все перекидывать?

Арни не желаете заняться этим вопросом с подмогой? =)
Бо мне эта вещь тоже нужна.

Спустя 43 минуты, 44 секунды (7.02.2011 - 17:14) Arni написал(а):
В поисках истины я собрал пару статей, вот эта вам должна подойти.

http://i-novice.net/rabotaem-s-ftp/
Тут есть пример как через рекурсию сделать права на запись, переделать под скопировать не проблема думаю.


Боюсь меня время выполнения и нагрузка на сервер не устроит в случае такого подхода. Я наивно понадеялся что каталог можно переместить, и файлы просто перезапишет. Я просто не полностью понимал как это все работает. Попробовать попробую. Результаты отпишу.

Спустя 1 день, 4 часа, 16 минут, 17 секунд (8.02.2011 - 21:30) LRCenter написал(а):
А как можно просто загрузить файл по фтп на серв средствами php?
Где можно посмотреть простейший пример?

Спустя 2 часа, 38 минут, 7 секунд (9.02.2011 - 00:08) linker написал(а):
$handler = ftp_connect('127.0.0.1');
ftp_login($handler, 'iam', 'passwd');
ftp_pasv($handler, true); // пассивный режим
ftp_put($handler, 'myfile.txt', 'c:/myfile.txt', FTP_ASCII);
ftp_close($handler);

Спустя 7 часов, 25 минут, 18 секунд (9.02.2011 - 07:33) LRCenter написал(а):
linker, спасибо.
А ftp_put в качестве источника примет файл загруженный с формы, т.е. из $_FILES ?

Спустя 1 час, 40 минут, 59 секунд (9.02.2011 - 09:14) linker написал(а):
Только укажи путь к файлу-источнику и все.

Спустя 1 час, 2 минуты, 3 секунды (9.02.2011 - 10:16) LRCenter написал(а):
А как можно через форму получить путь к файлу type=file же только файл передает?

Спустя 22 минуты, 48 секунд (9.02.2011 - 10:39) linker написал(а):
$_FILES['myfile']['tmp_name']

Спустя 16 минут, 12 секунд (9.02.2011 - 10:55) LRCenter написал(а):
Спасибо.


_____________
Ходить по воде и разрабатывать программы, следуя спецификации, очень просто… если они заморожены. (Edward V Berard).
________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.