![]() |
Модераторы: Snowy, Poseidon, MetalFan |
![]() ![]() ![]() |
|
Dimich |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 247 Регистрация: 25.8.2004 Где: Брянск Репутация: нет Всего: 7 |
Доброго времени суток!
Подскажите пожалуйста, как можно средствами Delphi загрузить файл на сервер по ftp? Уже с ног сбился в поиске решения, а так ничего и не нашел... --------------------
Не работает - исправь, работает - не трогай!!! |
|||
|
||||
MuToGeN |
|
|||
![]() Лесник ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4379 Регистрация: 15.8.2002 Где: Москва Репутация: нет Всего: 32 |
NMFTP вроде компонентина зволась. Еще что-то от Indy было.
-------------------- Three pings for the token rings, Five pings for the UNIX machines, Hundred pings for the broken links, One special ping to check them all Through Simple Network Management Protocol! |
|||
|
||||
<Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 1 Всего: 64 |
Попробуй TidFTP.Put.
-------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
Dimich |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 247 Регистрация: 25.8.2004 Где: Брянск Репутация: нет Всего: 7 |
Спасибо! NMFTP и idFTP вроде работают, вот только я не могу никак через Proxy заставить их работать. В качестве ftp proxy я поставил ESERV 2.99
Я уже запутался с настройками и параметрами этих компонентов. Просьба (не сочтите за наглость) - если будет возможность, киньте кусочек кода разобраться... --------------------
Не работает - исправь, работает - не трогай!!! |
|||
|
||||
Slawanix |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 177 Регистрация: 29.7.2004 Где: г. Великие Луки Репутация: 1 Всего: 1 |
Тема поднималась давно, но чем черт не шутит, по-моему, если коннектишься с фтп через проксю, надо использовать пассивный режим работы с фтпэшником. Как в других прогах Use Passiv FTP --------------------
моск кипит |
|||
|
||||
Dimich |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 247 Регистрация: 25.8.2004 Где: Брянск Репутация: нет Всего: 7 |
Спасибо за ответ, Slawanix, но к моему сожалению пассивный режим мне ничего не дал. Я уже правда и не могу вспомнить, где у меня конкретно не получилось (надо на работе смотреть). А сама проблема конечно ждет решения, хотя временно отложена мною за наличием более важных в данное время вещей.
Хотя, насколько я помню из моих мучений вышло одно: прокся проксе рознь. Вот в ESERV у меня были проблемы с одним, в других проксях с другим (к сожалению сейчас подробно не могу ничего сказать, т.к. нет под рукой наработок). Но I.E. же у меня через эти прокси работает и ему они побоку! Еще раз спасибо, Slawanix, за проявленное внимание! --------------------
Не работает - исправь, работает - не трогай!!! |
|||
|
||||
Slawanix |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 177 Регистрация: 29.7.2004 Где: г. Великие Луки Репутация: 1 Всего: 1 |
Dimich, жаль, что это не помогло. Я тоже начал заниматься этой темой, пишу свою прогу. Так что если у меня будет какое-либо решение, тебе сообщу. Просто начал очень недавно, и до этого еще не добрался ![]() Добавлено @ 00:11
![]() с уважением, Slawanix. --------------------
моск кипит |
||||
|
|||||
RA |
|
|||
![]() Брутальный буратина ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3497 Регистрация: 31.3.2002 Где: Лес Репутация: 10 Всего: 115 |
А ещё можно использовать компоненты ICS
|
|||
|
||||
Slawanix |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 177 Регистрация: 29.7.2004 Где: г. Великие Луки Репутация: 1 Всего: 1 |
А ещё можно использовать компоненты ICS
RAdmin, это делфовские или сторонних разработчиков компоненты? С уважением, Slawanix. --------------------
моск кипит |
|||
|
||||
RA |
|
|||
![]() Брутальный буратина ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3497 Регистрация: 31.3.2002 Где: Лес Репутация: 10 Всего: 115 |
||||
|
||||
Slawanix |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 177 Регистрация: 29.7.2004 Где: г. Великие Луки Репутация: 1 Всего: 1 |
у них эта скриптина на закачку не работает, жаль ![]() --------------------
моск кипит |
|||
|
||||
RA |
|
|||
![]() Брутальный буратина ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3497 Регистрация: 31.3.2002 Где: Лес Репутация: 10 Всего: 115 |
||||
|
||||
Slawanix |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 177 Регистрация: 29.7.2004 Где: г. Великие Луки Репутация: 1 Всего: 1 |
RAdmin, спасибо, уже качаю
![]() --------------------
моск кипит |
|||
|
||||
RA |
|
|||
![]() Брутальный буратина ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3497 Регистрация: 31.3.2002 Где: Лес Репутация: 10 Всего: 115 |
Это сообщение отредактировал(а) RAdmin - 26.1.2005, 20:58 |
|||
|
||||
Slawanix |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 177 Регистрация: 29.7.2004 Где: г. Великие Луки Репутация: 1 Всего: 1 |
Уважаемые, есть ли у кого-нибудь литература по работе с этими компонентами, а то в книге нет, не от чего оттолкнуться. Помогите, чем смогите, пожалуйста ![]() --------------------
моск кипит |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 4 Всего: 329 |
Мне кажется, что код RAdmin`а нужно вставить в FAQ и, конечно в DRKB
|
|||
|
||||
Ищущий! |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 19.4.2005 Репутация: нет Всего: нет |
Отличная штука... и тут вопрос... а как узнать прогресс загрузки, сколько загружено и сколько осталось? |
||||
|
|||||
RA |
|
|||
![]() Брутальный буратина ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3497 Регистрация: 31.3.2002 Где: Лес Репутация: 10 Всего: 115 |
![]()
|
|||
|
||||
Ищущий! |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 19.4.2005 Репутация: нет Всего: нет |
Типа огромное спасибо... а мож чуть еще помучать Вас
![]() |
|||
|
||||
RA |
|
|||
![]() Брутальный буратина ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3497 Регистрация: 31.3.2002 Где: Лес Репутация: 10 Всего: 115 |
![]() ![]() Из выше показанного примера следует что BytesOut - колличество отправленных байт BytesIn - колличество принятых байт следовательно что бы сделать прогресс: {Upload} //Делим кол-во отправленных байт на Размер твоего файла и умножаем на 100. //(Ну и округляем это дело) ProgressBar1.Position:=Round(BytesOut / MyFileSize * 100); //MyFileSize - кол-во байт d твоем файле, только не спрашивай как узнать сколько //весит твой фаил ![]() {Download} //The same shit. ProgressBar1.Position:=Round(BytesIn / MyFileSize * 100); //MyFileSize - кол-во байт в файла на фтпЕ, получаем с помощью //функции FtpGetFileSize из тогоже winInet. ЗЫ: "ProgressBar1.Position:= ..." можешь засунуть прям в конец процедуры InetCallback; |
|||
|
||||
Ищущий! |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 19.4.2005 Репутация: нет Всего: нет |
Спасибо, это то что мне надо было услыхать ![]() |
|||
|
||||
RA |
|
|||
![]() Брутальный буратина ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3497 Регистрация: 31.3.2002 Где: Лес Репутация: 10 Всего: 115 |
Пожал100
|
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 4 Всего: 329 |
для получения размера файла, нужно ли его открывать?
типа
Добавлено @ 16:16 что поставить в качестве dwAccess? Добавлено @ 16:22 нашёл GENERIC_READ |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 4 Всего: 329 |
а что енто ща второй параметр?
|
|||
|
||||
RA |
|
|||
![]() Брутальный буратина ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3497 Регистрация: 31.3.2002 Где: Лес Репутация: 10 Всего: 115 |
Угу. ![]() Кстати можно, получить размер файла через FtpFindFirstFile. |
|||
|
||||
Akella |
|
||||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 4 Всего: 329 |
в каком месте нужно её вызвать? Добавлено @ 16:52
Я ведь оправляю несколько файлов |
||||
|
|||||
RA |
|
||||||||
![]() Брутальный буратина ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3497 Регистрация: 31.3.2002 Где: Лес Репутация: 10 Всего: 115 |
То выше был чисто пример (наверное я этим примеров всех запутал),
на самомо деле стоит разделять отправку, соединение и разъединение.
........
Упс не заметил этого вопроса. Тут первым параметром идёт Хендл полученный после вызова FtpOpenFile второй параметр возвращает размер нашего файла. var FSize: Int64; ... FtpGetFileSize(FileHandle,Fsize); далее форматируй Fsize. Добавлено @ 20:25
После того как получил хэндл от InternetOpen Добавлено @ 20:29
Плз не пиши таких вещей как lvFilesToSend.Items[_if].Caption и sPathToSave+lvFilesToSend.Items я же не знаю что в них вписанно. А вобще конструкция вроде рабочая, вот только от try except можно избавиться. |
||||||||
|
|||||||||
Ak47t |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 25.7.2005 Репутация: нет Всего: нет |
![]() Опишите пожалуйста если не лень ![]() |
|||
|
||||
RA |
|
|||
![]() Брутальный буратина ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3497 Регистрация: 31.3.2002 Где: Лес Репутация: 10 Всего: 115 |
|
|||
|
||||
Ak47t |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 25.7.2005 Репутация: нет Всего: нет |
большое спасибо
![]() |
|||
|
||||
Dimich |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 247 Регистрация: 25.8.2004 Где: Брянск Репутация: нет Всего: 7 |
Сколько времени прошло, пришлось таки вернуться к неразрешенной еще тогда проблемке: работа с ftp через проксю. В качестве прокси стоит на линуксовой машине squid. Собственно это не ftp прокси, а HTTPS с поддержкой FTP. Так может тут какие нюансы есть? Не знаю, поэтому если кто знает, объясните плиз. Но IE работает ведь с ftp, Total Commander тож работает. Как и мне такое сделать (чтоб работало) пока не понял.... Пробовал код Radmin'a - не хочет через проксю соединяться, NMFTP и idFTP тоже не хотят через мою проксю, установил ICS компоненты - та же ситуация.....
Подскажите, как быть? Где я делаю не правильно? Как еще можно решить задачу upload/download файлов на ftp через прокси? --------------------
Не работает - исправь, работает - не трогай!!! |
|||
|
||||
Dimich |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 247 Регистрация: 25.8.2004 Где: Брянск Репутация: нет Всего: 7 |
Ситуация развивается следующим образом: решил все делать функциями API, через WinInet. Вот что получилось для Download:
Это работает через прокси замечательно, а вот как закачать файл на ftp сервер? Ответ напрашивается самим собой - InternetWriteFile. Но простая замена Read на Write тут не проходит. GetLastError возвращает ошибку после InternetWriteFile: ERROR_INTERNET_INCORRECT_HANDLE_STATE (12019) - The requested operation cannot be carried out because the handle supplied is not in the correct state. Смысл ошибки вроде как понятен. А как решить эту задачу не знаю. Знаний маловато. Собственно читаю http://msdn.microsoft.com/library/default....etwritefile.asp, но реализовать на практике ничего не получается. --------------------
Не работает - исправь, работает - не трогай!!! |
|||
|
||||
belka |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 223 Регистрация: 17.9.2006 Репутация: нет Всего: 3 |
что означает @InetCallback?? вернее что значит @??? да и InetCallback?? что все это?? --- сорри за тупой вопрос )) --------------------
Просто я живу на улице Ленина и меня зарубает время от времени...aka technogen007 |
|||
|
||||
Matematik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1027 Регистрация: 11.3.2006 Репутация: 24 Всего: 50 |
В ф-ю InternetSetStatusCallback() передается адрес ф-и InetCallback()
InetCallback() - callback ф-я @ - взять адрес финкции |
|||
|
||||
belka |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 223 Регистрация: 17.9.2006 Репутация: нет Всего: 3 |
Matematik, блин, а можно как-нить поподробнее??
я пробую код RA'dmina, так вот что-то не так получается.. дебагер ругает @InetCallBack - пишет что "Undeclared identifier 'InetCallback'"!! блин.. ПОЧЕМУ?? --------------------
Просто я живу на улице Ленина и меня зарубает время от времени...aka technogen007 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Сети" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Сети | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |