学习咏南BLOG的datasanp 用流下载文件,同时记录WINDOWS系统日志

服务器端:

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、查看日子

  在计算机管理可以查看系统日志:如图

时间: 2025-01-11 13:42:05

学习咏南BLOG的datasanp 用流下载文件,同时记录WINDOWS系统日志的相关文章

java 使用流下载文件

public HttpServletResponse download(String path, HttpServletResponse response) { try { // path是指欲下载的文件的路径. File file = new File(path); // 取得文件名. String filename = file.getName(); // 取得文件的后缀名. String ext = filename.substring(filename.lastIndexOf(".&qu

使用文件流下载文件,并且修改文件的名字

最近在搞一个项目,里面有一个文件下载的内容,但是万恶的产品提了一个要自定义修改文件名的需求,一开始后台不想改,让前端修改(这简直是不可理喻,最后还是后台改了),不过经过努力,我还是找到了方法去解决. 这里使用的是文件流的方式,就是先把文件从服务器下载下来,前端再通过blob去修改文件名. 代码如下: fetch('/api/fs/download2/internal/' + item.att[0].url).then(res => res.blob().then(blob => { let a

咏南C/S开发框架支持最新的DELPHI XE8开发

特大好消息:咏南C/S开发框架支持最新的DELPHI XE8开发!咏南开发框架让你再无开发工具升级后顾之忧! 购买咏南开发框架送项目源码!

咏南多层开发框架支持最新的DELPHI 10 SEATTLE

购买了咏南多层开发框架的老用户如有需要提供免费升级. 中间件

咏南中间件+开发框架支持最新的DELPHI 10.2.1

价格十分优惠.有意者请向本人索取演示程序! 你只需花一套中间件的价格,就可获得:中间件,CS开发框架一套(赠送),BS开发框架一套(赠送),APP开发框架一套(赠送),中间件集群一套(赠送). 购买后提供:全部源码+开发文档+在线技术支持服务+永久免费升级. 咏南中间件支持:中间件集群+数据库集群,支持系统无限扩展.

咏南中间件修正了一处BUG,调用中间件插件会报:非法访问

咏南中间件修正了一处BUG,调用中间件插件会报:非法访问将以下方法修改成如下的代码即可function TServerMethods1.GetSvrData(const accountNo, defineId: WideString; inParams: OleVariant): OleVariant;// 调用中间件的插件// defineId=3位插件编号+2位自定义编号var p: TfrmPlugBase; plugClass: string; ps: TPersistent;begin

咏南中间件V10.1更新日志

咏南中间件V10.1 2016-8-3----------------------------------------------------开始支持DELPHI10.1(BERLIN)增加中间件业务插件增加远程方法:function QuerySql2(const accountNo, sql: string): TFDJSONDataSets;function QuerySql3(const accountNo, sql: string): TStream;function QuerySql

咏南开发框架演示下载

请到咏南中间件群(103964922)共享里面下载.

咏南中间件支持服务端热插拔业务插件

咏南中间件支持服务端热插拔业务插件,中间件不需要停机即可增加和修改业务插件.