|
v7: Подключение в сайту через ftp | ☑ | ||
---|---|---|---|---|
0
VBMADD
18.09.14
✎
15:35
|
Привет братьям по разуму!
Знающие подскажите пож-ст про ftp-соединение Хотел на сайт по ftp-соединению забросить файлик написал код //подготавливаем файл с командами ftp ВременныйСкриптФайл="InetFTP.tmp"; Т=СоздатьОбъект("Текст"); Т.ДобавитьСтроку("open "+Сокрлп(адрес_фтп)); Т.ДобавитьСтроку(Сокрлп(логин)); Т.ДобавитьСтроку(Сокрлп(пароль)); Т.ДобавитьСтроку("prompt"); Т.ДобавитьСтроку("binary"); Т.ДобавитьСтроку("quote pasv"); Т.ДобавитьСтроку("cd "+Сокрлп("webspace")); Т.ДобавитьСтроку("cd "+Сокрлп("httpdocs")); Т.ДобавитьСтроку("cd "+Сокрлп("cantusmusic.ru")); Т.ДобавитьСтроку("cd "+Сокрлп("download")); Т.ДобавитьСтроку("quote PASV"); //переход в пассивный режим Т.ДобавитьСтроку("put flag.mod"); //посылаем проверочный флаг Т.ДобавитьСтроку("mput *.mod");//get Т.ДобавитьСтроку("mput "+файлик);//get Т.ДобавитьСтроку("get flag.mod flag2.mod");//считываем - его Т.ДобавитьСтроку("put flag2.mod"); Т.ДобавитьСтроку("quit");//выход Т.Записать(путь_к_файлу+"\"+ВременныйСкриптФайл); ФайлФлага=путь_к_файлу+"\flag.mod"; ФайлФлага2=путь_к_файлу+"\flag2.mod"; Т=СоздатьОбъект("Текст"); Т.ДобавитьСтроку("=Проверка связи="); Т.Записать(ФайлФлага); Если ФС.СУществуетФайл(ФайлФлага2)=1 Тогда ФС.УдалитьФайл(ФайлФлага2); КонецЕсли; Фс.УстТекКаталог(путь_к_файлу); Команда="ftp -s:"""+ВременныйСкриптФайл+""">ftp_out.log"; КомандаСистемы(Команда); Фс.УдалитьФайл(путь_к_файлу+"\"+ВременныйСкриптФайл); Рез=ФС.СУществуетФайл(ФайлФлага2); //если файл существует, то соединение было успешное ФС.УстТекКаталог(КаталогИБ()); Если Рез=1 Тогда Сообщить("Передача данных на ftp-сервер успешно завершена"); Иначе Сообщить("Ниче не отправилось, Ахтунг!!!!!"); КонецЕсли; КонецПроцедуры Вроде бы все срабатывает, но файл на сайт чета не записывается. Выдает вот такой лог-файл: //============================= 230 User f121619 logged in ftp> Интерактивный режим Выкл. ftp> prompt binary 200 Type set to I ftp> quote pasv 227 Entering Passive Mode (109,120,162,1,255,59). ftp> cd webspace 250 CWD command successful ftp> cd httpdocs 250 CWD command successful ftp> cd cantusmusic.ru 250 CWD command successful ftp> cd download 250 CWD command successful ftp> quote PASV 227 Entering Passive Mode (109,120,162,1,236,39). ftp> put flag.mod 200 PORT command successful ftp> Нет связи. ftp> mput *.mod Нет связи. ftp> mput C:\1C_Base\dima\export.csv Нет связи. ftp> get flag.mod flag2.mod Нет связи. ftp> put flag2.mod quit //============================ Помогите крестьянину разобраться где собака порылась, оч надо... Спасибо всем, кто откликнулся. |
|||
1
1Сергей
18.09.14
✎
15:38
|
убери quote PASV
|
|||
2
Defender aka LINN
18.09.14
✎
15:44
|
(0) А для нахрена такой изврат, чем FTPСоединение не угодило?
|
|||
3
Балоун
18.09.14
✎
15:44
|
>"Ниче не отправилось, Ахтунг!!!!!"
эк ты ласково юзера зовёшь |
|||
4
VBMADD
18.09.14
✎
15:47
|
(1) Убрал - ни че не изменилось!
(2) Подскажи как надо сделать, впервые с этим столкнулся... |
|||
5
VBMADD
18.09.14
✎
15:50
|
опять пишет что нет связи, а через FAR->FTP-Соединение все копируется...
230 User f121619 logged in ftp> Интерактивный режим Выкл. ftp> prompt binary 200 Type set to I ftp> cd webspace 250 CWD command successful ftp> cd httpdocs 250 CWD command successful ftp> cd cantusmusic.ru 250 CWD command successful ftp> cd download 250 CWD command successful ftp> put flag.mod 200 PORT command successful ftp> Нет связи. ftp> mput C:\1C_Base\dima\export.csv Нет связи. ftp> get flag.mod flag2.mod Нет связи. ftp> put flag2.mod quit |
|||
6
VBMADD
18.09.14
✎
16:10
|
(2) Где почитать про FTPСоединение для 1сV77?
|
|||
7
Jaffar
18.09.14
✎
16:21
|
(6) в гугле:
http://aitika.ru/otvety/2008-1c-Komandi-ftp |
|||
8
Злопчинский
18.09.14
✎
18:21
|
//****************************************************************************************************************************
//БЛОК ВЫГРУЗКИ НА ФТП ******************************************************************************************************* //**************************************************************************************************************************** ТекстВыгрузки = СоздатьОбъект("Текст"); //[*]progadmin, 18.03.2014, ДОБАВЛЕНО НЕТИПОВОЕ // ТекстВыгрузки.ДобавитьСтроку("open " + "ftp.money.net"); // ------------- ТекстВыгрузки.ДобавитьСтроку("open 10.0.0.1"); //[*]_progadmin, 18.03.2014, ДОБАВЛЕНО НЕТИПОВОЕ ТекстВыгрузки.ДобавитьСтроку("тутлогинфтп"); ТекстВыгрузки.ДобавитьСтроку("тутпарольфтп"); //ТекстВыгрузки.ДобавитьСтроку("cd office"); ТекстВыгрузки.ДобавитьСтроку("put " + КаталогПользователя() + ИмяПрайса); ТекстВыгрузки.ДобавитьСтроку("bye"); ТекстВыгрузки.Записать(КаталогПользователя() + "ftp.txt"); ТекстВыгрузки = ""; КомандаСистемы("ftp -s:" + КаталогПользователя() + "Ftp.txt>> " + (КаталогПользователя() + "report.txt")); ФС.УдалитьФайл(КаталогПользователя() + "ftp.txt"); ТекстВыгрузки = СоздатьОбъект("Текст"); ТекстВыгрузки.Открыть(КаталогПользователя() + "report.txt"); КС = ТекстВыгрузки.КоличествоСтрок()-4; //если все нормально - то в этой строке файла должно быть соотв.сообщение //проверим его Попытка строкаКомплете = ТекстВыгрузки.ПолучитьСтроку(КС); Если Найти(Нрег(строкаКомплете),"226 transfer complete") = 0 Тогда а=1; а=а/0; КонецЕсли; тПротокол = ТекущееВремя()+" файл данных успешно отправлен на сервер интернет-магазина"+РазделительСтрок+тПротокол; Форма.Обновить(); ТекстВыгрузки = ""; Исключение тПротокол = ТекущееВремя()+" ПРОИЗОШЛА ОШИБКА ВО ВРЕМЯ ЗАГРУЗКИ СФОРМИРОВАННОГО ФАЙЛА НА СЕРВЕР ИНЕТРНЕТ-МАГАЗИНА"+РазделительСтрок+тПротокол; ТемаПисьма = "10.0.0.1 (ftp.money.net) ОШИБКА ВЫГРУЗКИ ПРАЙСА НА FTP-СЕРВЕР"; ТелоПисьма = ""+ТекущаяДата()+" "+ТекущееВремя()+" |ООО РогаИкопыта (Буратино) |ПРОИЗОШЛА ОШИБКА ВО ВРЕМЯ ЗАГРУЗКИ СФОРМИРОВАННОГО ФАЙЛА НА FTP-СЕРВЕР ИНЕТРНЕТ-МАГАЗИНА 10.0.0.1 (ftp.money.net) |ПРОТОКОЛ ВО ВЛОЖЕНИИ. | |------------------------------------------------------ |робот IT-отдела |ООО РОГАИКОПЫТА"; Адресат = "*****@yandex.ru, ****@*****.ru, it@******.ru"; СписокФайлов = КаталогПользователя() + "report.txt"; Параметры = СоздатьОбъект("СписокЗначений"); Параметры.ДобавитьЗначение(ТемаПисьма ,"ТЕМА"); Параметры.ДобавитьЗначение(ТелоПисьма ,"ТЕЛО"); Параметры.ДобавитьЗначение(Адресат ,"КОМУ"); Параметры.ДобавитьЗначение(СписокФайлов ,"ФАЙЛ"); Параметры.ДобавитьЗначение(0 ,"ZIP"); Параметры.ДобавитьЗначение(1 ,"НЕМЕДЛЕННАЯОТПРАВКА"); ОткрытьФорму("Отчет",Параметры,КаталогИБ()+"ExtForms\БВК_ЕМАЙЛ_СиДиОу.ert"); Форма.Обновить(); тПротокол = ТекущееВремя()+" ОТЧЕТ ОБ ОШИБКЕ ОТПРАВЛЕН "+Адресат+РазделительСтрок+тПротокол; ТекстВыгрузки.Показать(); ТекстВыгрузки = ""; КонецПопытки; ФС.УдалитьФайл(КаталогПользователя() + ИмяПрайса); ФС.УдалитьФайл(КаталогПользователя() + "report.txt"); //**************************************************************************************************************************** //БЛОК ВЫГРУЗКИ НА ФТП ******************************************************************************************************* //**************************************************************************************************************************** . тПротокол - многострочнаый текст на форме |
|||
9
vcv
18.09.14
✎
21:10
|
Штатный виндовый ftp.exe пасивный режим не поддерживает. quote pasv отправляет команду серверу, тот отвечает, что всё ОК, но клиент-то всё равно пассив не поддерживает.
|
|||
10
Злопчинский
18.09.14
✎
21:17
|
можно еще ncftp заюзать - аналог ftp.exe - только с кучей допплюшек
|
|||
11
lavalit
19.09.14
✎
10:08
|
А извиняюсяя ... Shell использовать?
Примерно вот так Шел=СоздатьОбъект("shell.application"); //Шел.Open("c:\"); // умеет открывать проводник РесурсФТП ="ftp://" + СокрЛП(ФТП_Пользователь) + ":" + СокрЛП(ФТП_Пароль) + "@" + СокрЛП(ФТП_УРЛ) + "/" +?(ПустаяСтрока(СокрЛП(ФТП_ПутьВходящих))=0,СокрЛП(ФТП_ПутьВходящих) + "/" ,"")+ ДопКаталог; ПапкаФТП = Шел.namespace(РесурсФТП); ПапкаПриемник = Шел.namespace(СокрЛП(Каталог)); //возвращает агрегат каталога ПапкаЗагруженных = Шел.namespace(СокрЛП(Каталог)); Предупреждение("Подключение к FTP серверу...",1); КоллекцияФайлов = ПапкаФТП.items(); РазмерИсходника = КоллекцияФайлов.count; РазмерПриемникаНач = ПапкаПриемник.items().count; РазмерПриемникаКон = РазмерИсходника+РазмерПриемникаНач; Темы=ПапкаФТП.items(); //ПапкаЗагруженных.copyhere(Темы);// копирование файлов //Темы.filter(64,"*.txt");// ну если надо вдруг отфильтровать ПапкаПриемник.movehere(Темы); // перенос файлов |
|||
12
lavalit
19.09.14
✎
10:30
|
Здесь конечно скачивание с фтп, но так же и закачка делается
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |