Загрузка файла в никуда
Уважаемые форумчане, прошу помощи. Мне нужно что бы при загрузке файла он не сохранялся никуда на диск и при загрузке не жрал память.
как это сделать не могу сообразить, та и гугл не помог ничем.
пример кода:
Код:
TFileStream* new_file = new TFileStream("2", Classes::fmCreate | Sysutils::fmOpenWrite);
TIdHTTP * http = new TIdHTTP(NULL);
http->Get(Get_file,new_file);
TIdHTTP * http = new TIdHTTP(NULL);
http->Get(Get_file,new_file);
Хочешь определить что он существует?
куда по вашему комп должен файло пихать ?
Мне нужен факт загрузки данных на стороне сервера, а сам файл мне не нужен, при этом чтобы память не росла при загрузке и на HDD не сохранялся. По типу dev/null но на винду
можно же как то например в событие onWork полученные байты удалять? Или я ошибаюсь?
http->Head(... может быть?
InternetQueryDataAvailable (...
Цитата: George22
Вот еще откопал:
InternetQueryDataAvailable (...
InternetQueryDataAvailable (...
Оба этих варианты вернут размер загружаемого файла, а мне нужно его качать, но что бы при загрузке он не сохранялся ни в буфер ни на диск, либо сохранение на диск по типу dev/null но для винды, либо как то сразу при получении данных удалять.
InternetReadFile, в цикле в буфер фиксированной длины, просто перезаписывая его.
Загружать файл, например, через
Но ведь возвращение размера загружаемого файла будет означать, что его можно скачать! Если же и этого не достаточно, то читать в буфер фиксированной длины. Пара-тройка Кб не будут сильно жрать память, я полагаю ☺
создаем буфер типа memorystream в него пишем файло с idhttp а в обработчике idhttp в onWork очищаем буфер memorystream->Clear() и все. Память не растет, на HDD файл не сохраняется.