Здравствуйте, помогите пожалуйста реализовать передачу файлов на фтп , загрузку и скачивание, используя логин и пароль от сервера?
Я где то раньше находил тут на форме, что то было подобное, но не могу найти теперь рабочий вариант.
1. ivantu - 01 Мая, 2021 - 05:07:20 - перейти к сообщению
2. Nikanr - 01 Мая, 2021 - 05:12:54 - перейти к сообщению
Вроде тут:(для просмотра ссылки Вам необходимо авторизоваться)
3. ivantu - 01 Мая, 2021 - 05:20:53 - перейти к сообщению
[quote=Nikanr]Вроде тут:(для просмотра ссылки Вам необходимо авторизоваться) /quote]
спасибо, да этот код, раньше работал, теперь -3 возвращает, может из за того что мой сервер перешел на https ?
спасибо, да этот код, раньше работал, теперь -3 возвращает, может из за того что мой сервер перешел на https ?
4. Nikanr - 01 Мая, 2021 - 05:23:26 - перейти к сообщению
На некоторых ftp кидает сразу в корневую директорию после InternetConnect без FtpSetCurrentDirectory [было такое на внешнем ftp-хранилище zomro.com]. Возможно из-за этого. Если конечно код оригинальной функции не меняли
5. ivantu - 01 Мая, 2021 - 05:27:33 - перейти к сообщению
Nikanr пишет:
На некоторых ftp кидает сразу в корневую директорию
Да , убрав
Цитата:
if(FtpSetCurrentDirectory(connect, server_name)>0) // если перешло в папку вернёт 1
В корень файл, загрузил, но блин )) мне нужно конкретный адрес , вы не смогли победить эту ерунду с путями?
6. Nikanr - 01 Мая, 2021 - 06:01:00 - перейти к сообщению
Т.к нас кидает в сразу в корень, просто при помощи FtpSetCurrentDirectory сменить директорию на нужную, а не вызывать if(FtpSetCurrentDirectory(connect, server_name)>0) для перехода в корень (если я прав)
7. Zireael - 01 Мая, 2021 - 06:11:38 - перейти к сообщению
Какой путь вернёт FtpGetCurrentDirectoryA?
Можно в FtpSetCurrentDirectory указать полный путь к нужной папке.
Можно в FtpSetCurrentDirectory указать полный путь к нужной папке.
8. ivantu - 01 Мая, 2021 - 06:56:31 - перейти к сообщению
Zireael пишет:
Какой путь вернёт FtpGetCurrentDirectoryA?
Цитата:
external(INT, "FtpGetCurrentDirectory", "FtpGetCurrentDirectoryA", "Wininet.dll" );
FtpGetCurrentDirectory(connect, server_name);
Возвращает 0
9. Zireael - 01 Мая, 2021 - 07:16:27 - перейти к сообщению
Цитата:
Возвращает 0
Естественно, сначала надо посмотреть описании функции, какие и сколько параметров она принимает.
А не подсунуть ей параметры другой функции.
10. ivantu - 01 Мая, 2021 - 07:22:48 - перейти к сообщению
еще бы сообразить что подставлять туда
(Добавление)
hConnect
Дескриптор сеанса FTP.
lpszCurrentDirectory
Указатель на строку с нулевым завершением, которая получает абсолютный путь к текущему каталогу.
lpdwCurrentDirectory
Указатель на переменную, указывающую длину буфера, в TCHARs. Длина буфера должна включать в себя место для завершающего нулевого символа. Использование длины MAX_PATH достаточно для всех путей. Когда функция возвращается, переменная получает количество символов, скопированных в буфер.
Первый параметр будет connect, второй строка я так понял куда запишется полученный путь, я не понял что передавать в третий параметр?
CODE:
BOOLAPI FtpGetCurrentDirectoryA(
HINTERNET hConnect,
LPSTR lpszCurrentDirectory,
LPDWORD lpdwCurrentDirectory
);
BOOLAPI FtpGetCurrentDirectoryA(
HINTERNET hConnect,
LPSTR lpszCurrentDirectory,
LPDWORD lpdwCurrentDirectory
);
(Добавление)
Цитата:
hConnect
Дескриптор сеанса FTP.
lpszCurrentDirectory
Указатель на строку с нулевым завершением, которая получает абсолютный путь к текущему каталогу.
lpdwCurrentDirectory
Указатель на переменную, указывающую длину буфера, в TCHARs. Длина буфера должна включать в себя место для завершающего нулевого символа. Использование длины MAX_PATH достаточно для всех путей. Когда функция возвращается, переменная получает количество символов, скопированных в буфер.
Первый параметр будет connect, второй строка я так понял куда запишется полученный путь, я не понял что передавать в третий параметр?