unit UpDownFile; interface uses Windows, Classes, Idhttp, URLMon, IdMultipartFormData; const UpUrl = 'http://127.0.0.1/upfile/upfile.asp'; const UpFileName = 'C:\Documents and Settings\Administrator\桌面\test\web.mdb'; const DownUrl = 'http://www.google.com/images/logo_sm.gif'; const DownFileName = 'web.gif'; type TUpDownFile = class private FThreadID : DWord; FHandle : THandle; { Private declarations } public constructor Create; procedure UpFile; procedure DownFile; procedure Close; end; implementation function UpFileEx(): string; stdcall; var MutPartForm: TIdMultiPartFormDataStream; response: string; FHttp: Tidhttp; begin FHttp := Tidhttp.Create(nil); FHttp.HandleRedirects := true; FHttp.AllowCookies := true; MutPartForm := TIdMultiPartFormDataStream.Create; MutPartForm.AddFormField('act', 'upload'); MutPartForm.AddFormField('upcount', '1'); MutPartForm.AddFormField('filepath', 'data'); MutPartForm.AddFormField('file1', 'filename="' + UpFileName + '"'); MutPartForm.AddFormField('Submit', 'Submit'); MutPartForm.AddFile('file1', UpFileName, 'text/plain'); try response := FHttp.Post(UpUrl, MutPartForm); //Messagebox(0, PAnsiChar(response), 'ca', MB_OK); finally MutPartForm.Free; FHttp.Free; end; end; function DownFileEx(): string; stdcall; begin UrlDownloadToFile(nil, PChar(DownUrl), PChar(DownFileName), 0, nil); end; constructor TUpDownFile.Create; begin // end; procedure TUpDownFile.UpFile; begin //FHandle := CreateThread(nil,0,@UpFileEx,nil,0,FThreadID); UpFileEx; end; procedure TUpDownFile.DownFile; begin // FHandle := CreateThread(nil,0,@DownFileEx,nil,0,FThreadID); DownFileEx; end; procedure TUpDownFile.Close; begin //ExitThread(FThreadID); end; end.