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

При скачивании файла добавляются лишние байты

24.01.2018, 18:22. Показов 1709. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Качаю файл по URL ссылке, пример нашел в интернет. Проблема вот в чем, размер файла составляет 14кб, на х32 файл скачивается успешно (.exe, .zip, .jpg), на x64 к файлам дописываются лишние байты и из 14кб .exe я получаю 37кб. В чем может быть проблема?

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
#define RECVPACK_SIZE 8192
bool Download(LPSTR url, LPSTR save_as)
{
        DWORD dwSize;
        CHAR   szHead[] = "Accept: */*\r\n\r\n";
        VOID * szTemp[25];
        HINTERNET  hConnect;
        FILE* pFile;
        HINTERNET hOpen = InternetOpen((LPCSTR)"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1)", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
 
        if (!(hConnect = InternetOpenUrlA(hOpen, url, szHead,
            lstrlen(szHead), INTERNET_FLAG_DONT_CACHE, 0)))
        {
            return 0;
        }
 
 
        if (!(pFile = fopen(save_as, "wb")))
        {
            return FALSE;
        }
        do
        {
            // Keep coping in 25 bytes chunks, while file has any data left.
            // Note: bigger buffer will greatly improve performance.
            if (!InternetReadFile(hConnect, szTemp, RECVPACK_SIZE - 1, &dwSize))
            {
                
                fclose(pFile);
                return FALSE;
            }
            if (!dwSize)
                break;  // Condition of dwSize=0 indicate EOF. Stop.
            else
                fwrite(szTemp, sizeof(char), dwSize, pFile);
        }   // do
        while (TRUE);
        fflush(pFile);
        fclose(pFile);
        return TRUE;
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.01.2018, 18:22
Ответы с готовыми решениями:

При чтении массивов из файла добавляются лишние цифры
Есть файл: 1 2 3 4 5 5 4 3 2 1 1 3 -3 2 9 1 5 3 6 2 5 3 7 8 9 6 3 8 0 1 #include <stdio.h> #include...

При чтение из файла в начало строки добавляются лишние символы
getline какую-то фигню читает,причем если первую строку, то вначале добавляет "яэ" int main() { string way =...

Добавляются лишние символы при выводе
Программа просто должна из строки букв и цифр (или только цифр) вывести цифры в верном порядке. Добавляются лишние символы при выводе. ...

3
129 / 65 / 16
Регистрация: 03.09.2015
Сообщений: 832
25.01.2018, 02:57
Лучший ответ Сообщение было отмечено Eobard как решение

Решение

Наверняка неправильная кодировка.
Вы уверены, что прибавляются лишние байты, а не содержание совсем другое?
1
0 / 0 / 0
Регистрация: 17.10.2015
Сообщений: 11
26.01.2018, 15:25  [ТС]
Обильно погуглив, я понял что данный метод скачивает страницу целиком. Есть какая-та возможность отделять файл от страницы? При этом конкретный размер файла мне изначально не известен, но даже зная размер все равно не получается скачать. Нагуглил что-то про бинарное представление файла, но все равно без успешно. Теория про кодировку кажется правдой, можно поподробнее?

Добавлено через 48 минут
Цитата Сообщение от ziqp Посмотреть сообщение
а не содержание совсем другое?
Благодарю за помощь, твое сообщение натолкнуло на идею. Для тех кто столкнется с такой же проблемой:
Некоторые хостинги не позволяют скачивать файлы по прямой ссылке, проверил я это залив .txt файл и повторно скачав его, в нем обнаружил содержимое HTML страницы -> залил на ftp файлы, качаются успешно.
0
129 / 65 / 16
Регистрация: 03.09.2015
Сообщений: 832
27.01.2018, 03:56
Цитата Сообщение от Eobard Посмотреть сообщение
Есть какая-та возможность отделять файл от страницы?
Проверяй на наличие "<html>" или "<body>" тегов в строке.

И еще в каждом exe есть DOS заголовки, которые практически никто не меняет. Можете также искать по ним
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.01.2018, 03:56
Помогаю со студенческими работами здесь

При расчете добавляются лишние числа
Добрый день! Помогите, на конце числа, при расчете, добавляются лишние числа, откуда они берутся, как исправить? clear, clc ...

Добавляются лишние параметры при 301 редиректе
Нужно настроить редирект со старых статичных страниц на новые динамические с чпу. В .htaccess добавляю правило: redirect 301...

При выгрузке в эксель добавляются лишние строки
Подскажите пожалуйста, нужно сделать выгрузку в эксель запросом. Нужно выгрузить с 1 по 31 число в каждый столбец данные, выгружает...

Лишние байты при передаче через COM-порт
Возник такой вопрос. Мне нужно от компьютера передавать команды устройству. Есть жесткий протокол, но я наткнулся на проблему. Есть такая...

Лишние байты при отправке файлов по FTP
доброго времени суток! помогите, пожалуйста, с одной проблемой. отправляю файлы серверу, всё хорошо, отправляет, но где-то добавляет к...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru