Форум: "Сети";
Текущий архив: 2004.10.31;
Скачать: [xml.tar.bz2];
ВнизСкачивание файла через HTTP FTP Найти похожие ветки
← →
abcdef (2004-06-23 11:27) [0]Использую процедуру для скачивания фалов с сервера:
function tform1.GetInetFile(const fileURL, FileName: String): boolean;
const BufferSize = 1024;
var hSession, hURL: HInternet;
Buffer: array[1..BufferSize] of Byte;
BufferLen: DWORD;
f: File;
sAppName: string;
begin
Result:=False;
sAppName := ExtractFileName(Application.ExeName);
hSession := InternetOpen(PChar(sAppName), INTERNET_OPEN_TYPE_PRECONFIG,
nil, nil, 0);
try
hURL := InternetOpenURL(hSession,
PChar(fileURL),nil,0,0,0);
try
AssignFile(f, FileName);
Rewrite(f,1);
repeat
InternetReadFile(hURL, @Buffer, SizeOf(Buffer), BufferLen);
BlockWrite(f, Buffer, BufferLen);
until BufferLen = 0;
CloseFile(f);
Result:=True;
finally
InternetCloseHandle(hURL)
end
finally
InternetCloseHandle(hSession)
end
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if GetInetFile(Edit1.text,Edit2.Text) then
ShowMessage("Process was compliate!")
else
ShowMessage("Download error!");
end;
Но она не работает, программа даже не коннектится к серваку, а на строчке BlockWrite(f, Buffer, BufferLen); вылетает ошибка IO error, как заставить процедуру работать и еще прицепить к ней прогресс?
← →
McZim © (2004-06-28 12:07) [1]попробуй для начала просто установить соединение, а уж потом добиваться прогресса :))). Для коннекта могу посоветовать поработать с сокетами то-есть явно указать соединение через нужный тебе протокол.
← →
Alaman (2004-08-23 23:50) [2]Я пользуюсь примерно такой же процедурой. И у меня работает. Качает файлы по заданному URL. Перед запуском программы связь с интернет уже есть?
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2004.10.31;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.037 c