![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Upload файлы по ХТТП протоколу [D3, Win95/98]
Saint_Byte © (2004-10-29 13:01:00)Прошу помощи, как мне это реализовать , может кто знает под это дело специальный компонент ?
Дайте хоть линку , линки найденые яндексом я читал (не дурак)!!!
да и заметьте какой у меня софт
Reindeer Moss Eater (2004-10-31 14:12:00) [1]И что?
*.pas файлы вдруг стали несовместимы с блокнотом или редактором IDE?
Saint_Byte (2004-10-29 19:45:00) [2]Ключевое слово тут UPLOAD , тобишь загрузка на сервер !!!
На торри нет был компанетов не нашел .
А вот инди оно вроде только под новые делфы . А меня 3ая =(((
hooch (2004-10-29 14:08:00) [3]в Indy вроди заморочки есть с работой через прокси, пробовать не стал, сделал так
hooch (2004-10-29 14:05:00) [4]я так качал
// инициализация WinInet
ShowStatus('Инициализация...');
hInet := InternetOpen(PAnsiChar(Application.ExeName), INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
if hInet <> nil then
try
// открытие сессии
ShowStatus('Соединение...');
hConnect := InternetConnect(hInet, PChar(Url), INTERNET_DEFAULT_HTTP_PORT, nil, nil, INTERNET_SERVICE_HTTP, 0, 1);
if hConnect <> nil then
try
// открытие запроса
hRequest := HttpOpenRequest(hConnect, PChar('POST'), PChar(ObjectName), nil, nil, nil, INTERNET_FLAG_KEEP_CONNECTION, 0);
if hRequest <> nil then
try
ShowStatus('Отправка запроса...');
if HttpSendRequest(hRequest, PChar(Header), Length(Header), PChar(Query), Length(Query)) then
begin
dwIndex := 0;
dwBufferLen := 1024;
GetMem(Buffer, dwBufferLen);
try
// запрос размера файла
if HttpQueryInfo(hRequest, HTTP_QUERY_CONTENT_LENGTH, Buffer, dwBufferLen, dwIndex) then
begin
Size := StrToInt(StrPas(Buffer));
// чтение файла
ShowStatus('Загрузка данных...');
while true do
begin
if InternetReadFile(hRequest, @Data, SizeOf(Data), BytesToRead) and (BytesToRead > 0) then
AStream.Write(Data[0], BytesToRead)
else
Break;
ShowProgress(0, Size, AStream.Size);
end;
// проверка размера скаченого файла
if Size <> AStream.Size then
raise Exception.Create('Ошибочный размер файла')
else
ShowProgress(0, Size, AStream.Size);
end
else
raise Exception.Create('Ошибка получения размера файла')
finally
FreeMem(Buffer, dwBufferLen);
end;
end
else
RaiseLastOSError;
finally
InternetCloseHandle(hRequest);
end;
finally
InternetCloseHandle(hConnect);
end
else
RaiseLastOSError;
finally
InternetCloseHandle(hInet);
end
else
RaiseLastOSError;
Карелин Артем (2004-10-29 13:58:00) [5]Torry.net Гы-Гы
Reindeer Moss Eater (2004-10-29 13:08:00) [6]www.nevrona.com/indy