Страница: 1 |
Вопрос: Проблемма с FTP | Добавлено: 02.04.08 07:51 |
Автор вопроса: ![]() |
У меня не получается подключится к FTP
Private Sub Command1_Click()
Inet1.AccessType = icUseDefault Inet1.Protocol = icFTP Inet1.RemoteHost = "ftp.log3.jino-net.ru" Inet1.RemotePort = 21 Inet1.UserName = "log3" Inet1.Password = "pass" Inet1.Execute "ftp://ftp.log3.jino-net.ru/tmp/", "Put C:\123.exe 123.exe" End Sub Ошибка: "unable to connect to remote host" При этом виснет программа. Нашёл такое разьяснение, как мне кажется причина в этом: http://www.visualbasicsource.net/KnowledgeBase/q173265.txt глючная MSINET.OCX, скачал, постави но ничего не изменилось. Как можно подконектится? Где ошибка? Меня интересует как можно сохранить файл(или данные) на сервере. Может какой нибудь Upload, посоветуйте? |
Ответы | Всего ответов: 8 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 23 Ответов: 71 |
Профиль | Цитата | #1 | Добавлено: 02.04.08 08:06 |
Меня интересует как можно сохранить файл(или данные) на сервере.
Может какой нибудь Upload, посоветуйте? используй сокеты - компонента winsock |
Номер ответа: 2 Автор ответа: ![]() ![]() ICQ: 9580088 Вопросов: 13 Ответов: 1078 |
Web-сайт: Профиль | Цитата | #2 | Добавлено: 02.04.08 15:14 |
Каким образом? Мне нужно передать файл на сайт. А для этого компонента, как я понмаю нужна серверная и клиентская часть т.е. он подойдёт для прямой перекачки файлов. Разве можно таким образом передать файлы?
Если да, то приведите пример. |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ICQ: 298826769 Вопросов: 53 Ответов: 1732 |
Профиль | Цитата | #3 | Добавлено: 02.04.08 16:38 |
не надо там серверной часть. отсылаешь запрос на сервак и прослушиваешь определенный порт. в данном случае - 21 |
Номер ответа: 4 Автор ответа: ![]() ![]() ICQ: 9580088 Вопросов: 13 Ответов: 1078 |
Web-сайт: Профиль | Цитата | #4 | Добавлено: 03.04.08 13:12 |
Можешь пример привести? Что-то я не врубаюсь как туда запрос с логином и паролем отпраить и как команды выполнять? SendData ? |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ICQ: 298826769 Вопросов: 53 Ответов: 1732 |
Профиль | Цитата | #5 | Добавлено: 03.04.08 15:29 |
Почитай про ftp'шный протокол. SendData отсылаешь команду + пароль, к примеру. Далее слушаешь порт на предмет ответа. |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ICQ: 298826769 Вопросов: 53 Ответов: 1732 |
Профиль | Цитата | #6 | Добавлено: 03.04.08 15:44 |
А вот тебе на API кое-что: http://www.easycoding.org/?showpage=23&where=vb |
Номер ответа: 7 Автор ответа: ![]() ![]() ICQ: 9580088 Вопросов: 13 Ответов: 1078 |
Web-сайт: Профиль | Цитата | #7 | Добавлено: 03.04.08 21:40 |
Апи почему-то у меня даже не пытается запрос отправлять просто пишет ошибку) вот например в чём проблемма?
Private Declare Function InternetOpen _
Lib "wininet.dll" Alias "InternetOpenA" ( _ ByVal sAgent As String, _ ByVal nAccessType As Long, _ ByVal sProxyName As String, _ ByVal sProxyBypass As String, _ ByVal nFlags As Long) As Long Private Declare Function InternetConnect _ Lib "wininet.dll" Alias "InternetConnectA" ( _ ByVal hInternetSession As Long, _ ByVal sServerName As String, _ ByVal nServerPort As Integer, _ ByVal sUserName As String, _ ByVal sPassword As String, _ ByVal nService As Long, _ ByVal dwFlags As Long, _ ByVal dwContext As Long) As Long Private Declare Function FtpPutFile _ Lib "wininet.dll" Alias "FtpPutFileA" ( _ ByVal hFtpSession As Long, _ ByVal lpszLocalFile As String, _ ByVal lpszRemoteFile As String, _ ByVal dwFlags As Long, _ ByVal dwContext As Long) As Boolean Private Declare Function InternetCloseHandle _ Lib "wininet.dll" (ByVal hInet As Long) As Integer Private Sub Command1_Click() hINetSession = InternetOpen("MyFTPClient", 0, vbNullString, vbNullString, 0) hSession = InternetConnect(hINetSession, "ftp.log3.jino - net.ru", "21", "log3", "pass", INTERNET_SERVICE_FTP, 0, 0) If FtpPutFile(hSession, "c:\log.txt", "log.txt", 1, 0) = False Then Label1.Caption = "!!!" Call InternetCloseHandle(hSession) Call InternetCloseHandle(hINetSession) End If End Sub Он даже и не пытается конектится, может это для виндовса 98?))) Хотя смотрел wininet.dll - есть такая) Но не работает! |
Номер ответа: 8 Автор ответа: ![]() ![]() ICQ: 9580088 Вопросов: 13 Ответов: 1078 |
Web-сайт: Профиль | Цитата | #8 | Добавлено: 04.04.08 05:20 |
Опаньки, спасибо всем я разобрался, понял свои ошибки)) Выкладываю рабочую версию... может кому пригодится))
Это модуль: Public Declare Function InternetConnect _
Lib "wininet.dll" Alias "InternetConnectA" ( _ ByVal hInternetSession As Long, _ ByVal sServerName As String, _ ByVal nServerPort As Integer, _ ByVal sUserName As String, _ ByVal sPassword As String, _ ByVal nService As Long, _ ByVal dwFlags As Long, _ ByVal dwContext As Long) As Long Public Const INTERNET_SERVICE_FTP = 1 Public Declare Function FtpGetFile _ Lib "wininet.dll" Alias "FtpGetFileA" ( _ ByVal hFtpSession As Long, _ ByVal lpszRemoteFile As String, _ ByVal lpszNewFile As String, _ ByVal fFailIfExists As Boolean, _ ByVal dwFlagsAndAttributes As Long, _ ByVal dwFlags As Long, _ ByVal dwContext As Long) As Boolean Public Declare Function FtpPutFile _ Lib "wininet.dll" Alias "FtpPutFileA" ( _ ByVal hFtpSession As Long, _ ByVal lpszLocalFile As String, _ ByVal lpszRemoteFile As String, _ ByVal dwFlags As Long, _ ByVal dwContext As Long) As Boolean Public Declare Function InternetCloseHandle _ Lib "wininet.dll" (ByVal hInet As Long) As Integer Тут только две функции, GET и PUT. Остальны на: http://www.codenet.ru/progr/vbasic/FTP.php Это код формы: Private Sub Command1_Click() hINetSession = InternetOpen("FTP", 1, vbNullString, vbNullString, 0) hSession = InternetConnect(hINetSession, "ftp.log3.jino-net.ru", "21", "log3", _ "pass", INTERNET_SERVICE_FTP, 0, 0) If FtpGetFile(hSession, "123.exe", "c:\123.exe", False, 0, 1, 0) = False Then Label1.Caption = "The call to FtpGetFile failed." Call InternetCloseHandle(hSession) Call InternetCloseHandle(hINetSession) End If End Sub Private Sub Command2_Click() hINetSession = InternetOpen("FTP", 1, vbNullString, vbNullString, 0) hSession = InternetConnect(hINetSession, "ftp.log3.jino-net.ru", "21", "log3", _ "fuckoff", INTERNET_SERVICE_FTP, 0, 0) If FtpPutFile(hSession, "c:\log.txt", "log.txt", 1, 0) = False Then Label1.Caption = "The call to FtpPutFile failed." Call InternetCloseHandle(hSession) Call InternetCloseHandle(hINetSession) End If End Sub Как выяснилось всё до тупости просто. Спасибо всем. Может кто нибудь ещё знает как загрузить файл через HTTP? Буду признателен)) |
Страница: 1 |
|