Форум программистов, компьютерный форум, киберфорум
C++: Сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
 Аватар для Игорь с++
500 / 474 / 63
Регистрация: 26.01.2011
Сообщений: 2,033

Скачать файл: ошибка 12003

15.01.2015, 14:06. Показов 2183. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
есть данный код
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
43
44
// srtghju.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <windows.h>
#include <wininet.h>
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
 
 
 
#pragma comment (lib, "wininet.lib")
 
void download(LPCWSTR server, LPCWSTR login, LPCWSTR pass, LPCWSTR local_file, LPCWSTR remote_file)
{
     int er=0;
     
    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 );
 
 FtpGetFileW(hConnection, local_file, remote_file, true, 0, FTP_TRANSFER_TYPE_UNKNOWN, 0);
 
 er = GetLastError();
 
       // cout << "Success Story" << endl;
  //  else
 
        cout << "Epic Fail!   " <<er<< endl;
 
    InternetCloseHandle(hConnection);
    InternetCloseHandle(hOpen);
}
 
int _tmain(int argc, _TCHAR* argv[])
{
download(L"ftp.eimb.ru", NULL, NULL, L"COMP430D.exe", L"COMP430D.exe");
    system("pause");
    return 0;
}
GetLastError выдаёт 12003 , как бороться ?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.01.2015, 14:06
Ответы с готовыми решениями:

ошибка PHPExcel или как скачать файл с сервера
Доброго времени суток. Я генерирю .xlsx файл библиотекой PHPExcel. Могу его сохранить на сервер без проблем. Но не получается отправить его...

Не могу скачать файл с данного сервиса Файлы@Mail.ru, все время появляется ошибка: 301 Moved Permanently
Не могу скачать файл с данного сервиса Файлы@Mail.ru, все время появляется эта ошибка. Можно как-нибудь от нее избавиться и скачать файл? ...

Как найти ссылку на файл css в html и скачать этот файл?
как найти ссылку на .css в html и скачать этот файл с таким же названием? не могу найти за что зацепиться для поиска. единственное что в...

6
267 / 170 / 40
Регистрация: 25.08.2014
Сообщений: 1,087
Записей в блоге: 1
15.01.2015, 14:52
Так ты GetLastError вызываешь только в самом конце, не понятно где именно возникает.
0
 Аватар для Игорь с++
500 / 474 / 63
Регистрация: 26.01.2011
Сообщений: 2,033
15.01.2015, 15:16  [ТС]
Цитата Сообщение от Enno Посмотреть сообщение
Так ты GetLastError вызываешь только в самом конце, не понятно где именно возникает.
можно и так -
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
43
44
45
46
47
48
49
#include "stdafx.h"
#include <windows.h>
#include <wininet.h>
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
 
 
 
#pragma comment (lib, "wininet.lib")
 
void download(LPCWSTR server, LPCWSTR login, LPCWSTR pass, LPCWSTR local_file, LPCWSTR remote_file)
{
     int er=0;
     
BOOL bl;
 
    HINTERNET hOpen, hConnection;
 
    hOpen = InternetOpen(NULL, INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
 
    if(hOpen == NULL ){er = GetLastError();cout<<er<<"\n";}
 
    hConnection = InternetConnectW(hOpen, server, 21, login, pass, INTERNET_SERVICE_FTP, 0, 0 );
 
if(hConnection == NULL ){er = GetLastError();cout<<er<<"\n";}
 
bl = FtpGetFileW(hConnection, local_file, remote_file, true, 0, FTP_TRANSFER_TYPE_UNKNOWN, 0);
 
 
if(bl==FALSE){
 
    er = GetLastError();
 
        cout << "Epic Fail!   " <<er<< endl;
 
}
 
    InternetCloseHandle(hConnection);
    InternetCloseHandle(hOpen);
}
 
int _tmain(int argc, _TCHAR* argv[])
{
download(L"ftp.eimb.ru", NULL, NULL, L"COMP430D.exe", L"COMP430D.exe");
    system("pause");
    return 0;
}
только смысла не меняет всё равно одна и таже ошибка
0
Эксперт С++
 Аватар для schdub
3073 / 1411 / 425
Регистрация: 19.01.2009
Сообщений: 3,893
15.01.2015, 23:52
Игорь с++, используйте флаг INTERNET_FLAG_PASSIVE. Например:
C++
1
2
3
4
5
6
7
8
9
10
11
//...
 
        hFtpSession = InternetConnect(hInternet,
            host.c_str(),
            INTERNET_DEFAULT_FTP_PORT,
            login.c_str(),
            pass.c_str(),
            INTERNET_SERVICE_FTP,
            INTERNET_FLAG_PASSIVE, 0);
 
//...
0
 Аватар для Игорь с++
500 / 474 / 63
Регистрация: 26.01.2011
Сообщений: 2,033
16.01.2015, 10:01  [ТС]
Цитата Сообщение от schdub Посмотреть сообщение
Игорь с++, используйте флаг INTERNET_FLAG_PASSIVE.
без разницы всё равно та же ошибка , что и была .

Добавлено через 2 часа 3 минуты
вообще кто как скачивает (есть у кого рабочий код) ?
0
Эксперт С++
 Аватар для schdub
3073 / 1411 / 425
Регистрация: 19.01.2009
Сообщений: 3,893
16.01.2015, 10:30
Лучший ответ Сообщение было отмечено Игорь с++ как решение

Решение

Игорь с++, вот так у меня работает:
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
43
#include <windows.h>
#include <wininet.h>
#include <iostream>
 
#pragma comment (lib, "wininet.lib")
 
void download(LPCWSTR server, LPCWSTR login, LPCWSTR pass, LPCWSTR local_file, LPCWSTR remote_file) {
     int er=0;
     BOOL bl;
 
    HINTERNET hOpen, hConnection;
 
    hOpen = InternetOpen(NULL, INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
 
    if (hOpen == NULL) {
        er = GetLastError();
        std::cout<<"hOpen == NULL\n";
    } else {
        hConnection = InternetConnectW(hOpen, server, 21, login, pass, INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0 );
        if (hConnection == NULL){
            er = GetLastError();
            std::cout<<"hConnection == NULL\n";
        } else {
            bl = FtpGetFileW(hConnection, remote_file, local_file, TRUE, 0, FTP_TRANSFER_TYPE_BINARY, 0);
            if (bl==FALSE) {
                er = GetLastError();
                std::cout << "Epic Fail! " <<er<< std::endl;
            }
            InternetCloseHandle(hConnection);
        }
        InternetCloseHandle(hOpen);
    }
 
    if (er != 0) {
        std::cout << "lastError=" << er << std::endl;
    }
}
 
int main(int argc, TCHAR* argv[]) {
    download(L"ftp.eimb.ru", NULL, NULL, L"COMP430D.EXE", L"/COMP430D.EXE");
    system("pause");
    return 0;
}
1
 Аватар для Игорь с++
500 / 474 / 63
Регистрация: 26.01.2011
Сообщений: 2,033
16.01.2015, 14:44  [ТС]
schdub, Спасибо действительно работает !!!

Добавлено через 2 минуты
schdub, скажи , а с http так же работать ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.01.2015, 14:44
Помогаю со студенческими работами здесь

Пытаюсь скачать файл через Guardlink - получаю битый файл
Итак, у меня есть VBA-код, который скачивает файлы с сервера по HTTP: Sub Macross1() LinkToFile$ = &quot;Адрес сайта&quot; ...

Как скачать файл большой файл в Делфи?
Как скачать файл большой файл в Делфи? Без TMemoryStream; Работающих примеров не нашел...

Файл: скачать файл по заданной ссылке...
Здравствуйте, имеется такое задание :&quot;Имеется набор файлов, каждый из которых, кроме последнего, содержит имя следующего файла. Первое...

Скачать файл в 2.5
Народ посоветуйте чё-то толковое, мне надо отдать посетителю файл, соотв-енно леплю красивый имадж-ссылку на файл расположенный на том же...

Скачать файл
Пишу программу хочу чтобы когда человек запустил её .скачивался фаил по ссылке


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
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. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru