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

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

02.07.2014, 22:31. Показов 7749. Ответов 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
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
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
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
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
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
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
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru