服务器端:
function TServerMethods1.getfile(filename: string): TStream;
var
FilePath,DownFile:String;
FS:TFileStream;
log:TEventLogger ;//需要在USES里加上 Vcl.SvcMgr,才可以引用TEventLogger
begin
FilePath:=‘d:\xe\‘;
DownFile:=FilePath+FileName;
log:=TEventLogger.Create(‘MyMessage‘);//创建一个消息
log.LogMessage(DownFile);//输出一个消息
result:=nil;
if not FileExists(DownFile) then begin
log.LogMessage(‘文件不存在‘);//在输出一个,会产生两条日志
Exit;
end;
result:=TFileStream.Create(DownFile,fmOpenRead);
if result<>nil then
Result.Position:=0;
end;
客户端:
procedure TForm4.btn1Click(Sender: TObject);
const
bufferSize=10240;
var
con:TServerMethods1Client;
FStream:TStream;
FileFs:TFileStream;
buffer:TBytes;
count:Integer;
begin
con:=TServerMethods1Client.Create(SQLConnection1.DBXConnection);
count:=0;
SetLength(Buffer, bufferSize);
//从服务器上下载来以后,更名delphidown.pdf‘
FileFs:=TFileStream.Create(‘d:\delphidown.pdf‘,fmCreate);
try
FStream:=con.getfile(‘delphi.pdf‘);//服务器上的文件名,服务器上必需要有
edt1.Text:=con.ReverseString(‘abc‘);//这个用来掉用自带的一个字符串翻转的例子
repeat
count:=FStream.Read(buffer[0],bufferSize);//不停的读流
if count>0 then
//不停的读流的写流,写到‘d:\delphidown.pdf‘
FileFs.WriteBuffer(buffer[0],count);
until (count<bufferSize);
except
end;
end;
注意的地方:
1、 windows要启用日志服务。要不然看到输出的日志了。
2、查看日子
在计算机管理可以查看系统日志:如图