С Новым годом! Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.76/37: Рейтинг темы: голосов - 37, средняя оценка - 4.76
0 / 0 / 0
Регистрация: 29.10.2012
Сообщений: 50

WinApi, FTP скачать файл с сервера

02.07.2014, 22:31. Показов 7622. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В общем не качает((
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
// 123123.cpp: определяет точку входа для консольного приложения.
//
#include <Windows.h>
 
#include <WinInet.h>
#include <conio.h>
using std::cout;
using std::cin;
using std::endl;
 
 
#pragma comment (lib, "wininet.lib")
 
void upload(LPCSTR server, LPCSTR login, LPCSTR pass, LPCWSTR local_file, LPCWSTR remote_file)
{
    HINTERNET hOpen, hConnection;
   
 
    hOpen = InternetOpen(NULL, INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
   
    hConnection = InternetConnectA(hOpen, server, INTERNET_DEFAULT_FTP_PORT,login, pass, INTERNET_SERVICE_FTP, 0, 0);
                                
    if(FtpGetFile(hConnection, local_file, remote_file,0,0,0,0))
                  cout << "Success Story" << endl;
    else
        cout << "Epic Fail!" << endl;
                 
    InternetCloseHandle(hConnection);
    InternetCloseHandle(hOpen);
}
 
 
int main()
{
    upload("ftp.eimb.ru","","",_T("COMP430D.DOC"), _T("C://COMP430D.DOC"));
 
    system("pause");
    return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.07.2014, 22:31
Ответы с готовыми решениями:

WinApi ftp server
Доброго времени суток всем! Возникла следующая необходимо написать программу реализующую часть функциональности ftp сервера позволяющую...

Не могу скачать файл с FTP-сервера
Создаются папки, файлы закачиваются нормально, а вот скачивать через ftp не получается. Очень срочно нужна помощь. Делаю так: открыл...

Как скачать файл размером 11 Мб с FTP-сервера?
Пытался скачать через ftp командой get файл весом 11мб не хочет качать, как мне его скачать?

26
 Аватар для Toshkarik
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
02.07.2014, 22:38
Я могу ошибаться, близко не знакомился, но анонимно по ftp пользователь заходит под login`ом anonymous. Попробуйте, возможно, поможет.
0
0 / 0 / 0
Регистрация: 29.10.2012
Сообщений: 50
02.07.2014, 22:47  [ТС]
то же самое(сервер вроде обычный, без пароля...
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
02.07.2014, 22:55
Может, не надо A и W функции смешивать?
0
0 / 0 / 0
Регистрация: 29.10.2012
Сообщений: 50
02.07.2014, 23:04  [ТС]
to есть InternetConnect (hOpen, server, INTERNET_DEFAULT_FTP_PORT,login, pass, INTERNET_SERVICE_FTP, 0, 0) ?

Добавлено через 2 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
// 123123.cpp: определяет точку входа для консольного приложения.
//
#include <Windows.h>
 
#include <WinInet.h>
#include <conio.h>
using std::cout;
using std::cin;
using std::endl;
 
 
#pragma comment (lib, "wininet.lib")
 
void upload(LPCWSTR server, LPCWSTR login, LPCWSTR pass, LPCWSTR local_file, LPCWSTR remote_file)
{
    HINTERNET hOpen, hConnection;
   
 
    hOpen = InternetOpen(NULL, INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
   
    hConnection = InternetConnect(hOpen, server, 21,login, pass, INTERNET_SERVICE_FTP, 0,0 );
                                
    if(FtpGetFile(hConnection, local_file, remote_file,true,0,FTP_TRANSFER_TYPE_BINARY,0))
                  cout << "Success Story" << endl;
    else
        cout << "Epic Fail!" << endl;
                 
    InternetCloseHandle(hConnection);
    InternetCloseHandle(hOpen);
}
 
 
int main()
{
    upload((LPCWSTR)"ftp.eimb.ru",(LPCWSTR)"anonymous",(LPCWSTR)"anonymous",_T("COMP430D.DOC"), _T("C://COMP430D.DOC"));
 
    system("pause");
    return 0;
}
тоже самое
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
02.07.2014, 23:05
Вот так вообще-то:
C++
1
L"ftp.eimb.ru"
0
0 / 0 / 0
Регистрация: 29.10.2012
Сообщений: 50
02.07.2014, 23:11  [ТС]
EPic Fail.... поменял все на L .. все равно не работает.

Добавлено через 1 минуту
Ребят, а гляньте пожалуйста, сервак то подходящий?
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
02.07.2014, 23:21
А как его проверить? Работает.
0
0 / 0 / 0
Регистрация: 29.10.2012
Сообщений: 50
02.07.2014, 23:25  [ТС]
ну кроме того, что он открывается с браузера, и видно что там лежит, никаких условий?
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
02.07.2014, 23:26
local и remote файлы (сами имена) не перепутаны и почему "C://", а не "C:\\"?
0
0 / 0 / 0
Регистрация: 29.10.2012
Сообщений: 50
02.07.2014, 23:32  [ТС]
а что они значат?
0
0 / 0 / 0
Регистрация: 29.10.2012
Сообщений: 50
02.07.2014, 23:34  [ТС]
поменял и местами и слэши в обратку направил. все равно Epic Fail. почему то возращает 0
0
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
02.07.2014, 23:35
nmcf, извиняй не то я подумал.
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
02.07.2014, 23:36
Остальные функции тоже проверяй на ошибку. Может там уже на InternetOpen() ноль.
0
0 / 0 / 0
Регистрация: 29.10.2012
Сообщений: 50
02.07.2014, 23:52  [ТС]


Добавлено через 33 секунды
вот это перед самой ф-ей
0
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
02.07.2014, 23:59
vlad-chk, У меня заработало вот так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <windows.h>
#include <wininet.h>
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
 
void download(LPCWSTR server, LPCWSTR login, LPCWSTR pass, LPCWSTR local_file, LPCWSTR remote_file)
{
    HINTERNET hOpen, hConnection;
 
    hOpen = InternetOpen(NULL, INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
 
    hConnection = InternetConnectW(hOpen, server, 21, login, pass, INTERNET_SERVICE_FTP, 0, 0 );
 
    if(FtpGetFileW(hConnection, local_file, remote_file, true, 0, FTP_TRANSFER_TYPE_UNKNOWN, 0))
        cout << "Success Story" << endl;
    else
        cout << "Epic Fail!" << endl;
 
    InternetCloseHandle(hConnection);
    InternetCloseHandle(hOpen);
}
 
 
int main()
{
    download(L"ftp.eimb.ru", NULL, NULL, L"COMP430D.DOC", L"COMP430D.DOC");
}
ИМХО, если у автора винда семерка (или 8), то ошибка была в невозможности записать в корень диска С. А вообще в таких случаях надо смотреть GetLastError
0
0 / 0 / 0
Регистрация: 29.10.2012
Сообщений: 50
03.07.2014, 00:01  [ТС]
спасибо , но у меня 8 ка

Добавлено через 1 минуту
а куда он запишется в данном случае?
0
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
03.07.2014, 00:02
Цитата Сообщение от vlad-chk Посмотреть сообщение
спасибо , но у меня 8 ка
Это ничего не меняет

Добавлено через 37 секунд
Цитата Сообщение от vlad-chk Посмотреть сообщение
а куда он запишется в данном случае?
Рядом с экзешником должен. Либо по текущему пути проекта. Смотря откуда запускать.
0
0 / 0 / 0
Регистрация: 29.10.2012
Сообщений: 50
03.07.2014, 00:05  [ТС]
а я даже не компилировал экзешник , в папку проекта?
0
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
03.07.2014, 00:06
Цитата Сообщение от vlad-chk Посмотреть сообщение
а я даже не компилировал экзешник , в папку проекта?
Ну задай ему какой-нибудь путь. Например на диск Д, если есть или в мои документы. На С нельзя писать из-за системных политик безопасности
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.07.2014, 00:06
Помогаю со студенческими работами здесь

Скачать файлы с ftp сервера
Доброе время суток Подскажите пожалуйста, как сделать так чтобы из всех папок где есть файлы они скачивались #Пароль и логин я уже...

Скачать файлы с FTP-сервера и закачать файлы на FTP-сервер
Сдравствуйте, как скачать и закачать файлы на ftp сервер без искажения и повреждения всех расшений, кроме текстовых? К примеру такая...

Как скачать файлы с FTP-сервера по маске и расписанию?
Задача: каждые полчаса соединяться с ФТП сервером (логин, пароль, не пассивный режим), из определенного каталога с кучей файлов скачивать...

Скачать файл с FTP
сто раз обсуждалось, но все таки, пример не работает, где ошибка порылась? Option Explicit On Public Class Form1 Private...

Загрузить/скачать файл по FTP протоколу
Господа, будьте добры, необходим рабочий пример. Заранее всем большое спасибо! Не могу найти нормальный рабочий пример..


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru