Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.29;
Скачать: CL | DM;

Вниз

Получаю старую версию файла с сервера! как побороть?   Найти похожие ветки 

 
AlexT1000 ©   (2003-07-22 13:56) [0]

Существует следующий код загрузки файлов с сервера.
Проблема в том , что мне возвращает старые копии скачиваемого файла с сервера если я его там поменяю.
помогает только перезагрузка приложения или очистка кеша виндовс.
КАК СДЕЛАТЬ ТАК ,ЧТО БЫ ВОЗВРАЩАЛАС ЬСАМАЯ СВЕЖАЯ КОПИЯ ВЫКАЧИВАЕМОГО ФАЙЛА?
SetLength(AcceptTypes, 2);
AcceptTypes[0] := PChar("*.*"); AcceptTypes[1] := nil;
Res:=0;
ParseURL(HostName,s, FileName);
Ok:=true;
BytesToRead:=0;
BytesReaded:=0;
if hconnect=nil then
hConnect := InternetConnect(hSession, PChar(s),
INTERNET_DEFAULT_HTTP_PORT, PChar(""), PChar(""), INTERNET_SERVICE_HTTP, 0, 0);
if hconnect=nil then Exit;
if hRequest<>nil then InternetCloseHandle(hRequest);
hRequest := HttpOpenRequest(hConnect,nil ,PChar(FileName),nil,
nil,Pointer(AcceptTypes),
INTERNET_FLAG_EXISTING_CONNECT
,0);
AcceptTypes:=nil;
OK := HttpSendRequest(hRequest, nil, 0, nil, 0);
Res:=GetError(GetLastError);
if Res=1 then begin InternetCloseHandle(hRequest);
InternetCloseHandle(hConnect);
hRequest:=nil;
hConnect:=nil;
end;
if (not Ok) or (hConnect=nil) or (hrequest=nil) then Exit;
if Terminated then Exit; Application.ProcessMessages;
dwIndex := 0;
dwBufLen := 10240;
GetMem(Buf, dwBufLen);
Ok:= HttpQueryInfo(hRequest, HTTP_QUERY_CONTENT_LENGTH,
Buf, dwBufLen, dwIndex);
if Ok then try FileSize := StrToInt(StrPas(Buf));except end
else Exit;
Ok:=true;
FreeMem(Buf);
M:=TMemoryStream.Create;
repeat
FillChar(Data,sizeof (Data),0);
if not InternetReadFile(hRequest, @Data, SizeOf(Data), BytesToRead) then begin Ok:=False;Break; end;
inc(BytesReaded,BytesToRead);
end;
M.Write(Data,BytesToRead);
( hRequest) Существует следующий код загрузки файлов с сервера.
Проблема в том , что мне возвращает старые копии скачиваемого файла с сервера если я его там поменяю.
помогает только перезагрузка приложения или очистка кеша виндовс.
КАК СДЕЛАТЬ ТАК ,ЧТО БЫ ВОЗВРАЩАЛАС ЬСАМАЯ СВЕЖАЯ КОПИЯ ВЫКАЧИВАЕМОГО ФАЙЛА?
SetLength(AcceptTypes, 2);
AcceptTypes[0] := PChar("*.*"); AcceptTypes[1] := nil;
Res:=0;
ParseURL(HostName,s, FileName);
Ok:=true;
BytesToRead:=0;
BytesReaded:=0;
if hconnect=nil then
hConnect := InternetConnect(hSession, PChar(s),
INTERNET_DEFAULT_HTTP_PORT, PChar(""), PChar(""), INTERNET_SERVICE_HTTP, 0, 0);
if hconnect=nil then Exit;
if hRequest<>nil then InternetCloseHandle(hRequest);
hRequest := HttpOpenRequest(hConnect,nil ,PChar(FileName),nil,
nil,Pointer(AcceptTypes),
INTERNET_FLAG_EXISTING_CONNECT
,0);
AcceptTypes:=nil;
OK := HttpSendRequest(hRequest, nil, 0, nil, 0);
Res:=GetError(GetLastError);
if Res=1 then begin InternetCloseHandle(hRequest);
InternetCloseHandle(hConnect);
hRequest:=nil;
hConnect:=nil;
end;
if (not Ok) or (hConnect=nil) or (hrequest=nil) then Exit;
if Terminated then Exit; Application.ProcessMessages;
dwIndex := 0;
dwBufLen := 10240;
GetMem(Buf, dwBufLen);
Ok:= HttpQueryInfo(hRequest, HTTP_QUERY_CONTENT_LENGTH,
Buf, dwBufLen, dwIndex);
if Ok then try FileSize := StrToInt(StrPas(Buf));except end
else Exit;
Ok:=true;
FreeMem(Buf);
M:=TMemoryStream.Create;
repeat
FillChar(Data,sizeof (Data),0);
if not InternetReadFile(hRequest, @Data, SizeOf(Data), BytesToRead) then begin Ok:=False;Break; end;
inc(BytesReaded,BytesToRead);
end;
M.Write(Data,BytesToRead);
until BytesToRead = 0;
InternetCloseHandle(hRequest);hRequest:=nil;

if not Ok then begin M.Free; Exit;end;
M.Position:=0;
end;


 
Е-Моё имя ©   (2003-07-22 16:08) [1]

у hRequest наверна есть свойства-заголовки
добавить надо Pragma: no-cache туда


 
aach_ua ©   (2003-07-29 11:26) [2]

Можно глянуть весь текст исходника?


 
AlexT1000 ©   (2003-07-29 19:57) [3]

а чего тебе еще не хватает?
здесь самая важная часть



Страницы: 1 вся ветка

Текущий архив: 2003.09.29;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.014 c
3-96063
Step[B.M.]
2003-09-07 09:40
2003.09.29
Какие ограничения у нелицензированой IBPlus?


1-96255
Julie
2003-09-17 08:12
2003.09.29
EhLib


7-96464
Андрей М.
2003-07-17 23:34
2003.09.29
аудит принтера


14-96396
il_
2003-09-10 11:19
2003.09.29
Как вы относитесь к Fox Pro


1-96211
Shaman
2003-09-17 20:18
2003.09.29
Что сделать, чтобы дельфя не перекомпиливала модули