delphi源码 中间件 框架【网盘映射】

1,通过Stream实现文件上传与下载:首先在服务端建立相关路径信息。

【文件上传接口:FileUpLoad】范例代码如下:

var
  memoryStream: TMemoryStream;
  sErrorMsg, filePath,fileName: string;
  token,FolderNo: string;
begin
  if OpenDialog1.Execute = false then
    Exit;
   //待上传的文件
  filePath := OpenDialog1.fileName;
    memoryStream := TMemoryStream.Create;
  try
    screen.Cursor := crHourGlass;
    try
     //调用此接口的秘钥
     token:='123';
     //服务端定义的文件夹序号
     FolderNo:= 'k01';
    //文件名称
      fileName:=ExtractFileName(fileName);
      //文件转Stream
      memoryStream.LoadFromFile(filePath);
      memoryStream.Position := 0;
      //执行失败返回的错误代码
      sErrorMsg:='';
      if not ser.FileUpLoad(fileName,FolderNo,token, memoryStream, sErrorMsg)  then
      begin
        showmessage(sErrorMsg);
        Exit;
      end;
      showmessage('保存成功')
    except on ee: exception do
      begin
        showmessage(ee.Message)
      end;
    end;
  finally
    screen.Cursor := crDefault;
    memoryStream := nil;
  end;

【文件下载接口:FileDownLoad】范例代码如下:

const
  BufSize = $F000;
var
  Stream: TStream;
  sErrorMsg, netfileName, savefileName: string;
  token, FolderNo: string;
  Buffer: TBytes;
  ReadCount: Integer;
  FS: TMemoryStream;
begin
  if SaveDialog1.Execute = false then
    Exit;
  // 保存路径及名称
  savefileName := SaveDialog1.fileName;
  FS := TMemoryStream.Create;
  try
    screen.Cursor := crHourGlass;
    // 服务端定义的文件夹Id
    FolderNo := 'k01';
    // 要下载的文件名称
    netfileName := 'bag11.JPG';
    // 连接秘钥
    token := '123kuajiedl.';
    // sErrorMsg:下载失败返回错误信息
    // 连接并下载
    if not ser.FileDownLoad(netfileName, FolderNo, token, Stream, sErrorMsg) then
    begin
      showmessage(sErrorMsg);
      Exit;
    end;
    try
      // Stream: 服务端返回的 Stream类型值
      if Stream.Size = -1 then // 大小未知则一直读取到没有数据为止
      begin
        SetLength(Buffer, BufSize);
        repeat
          ReadCount := Stream.Read(Buffer[0], BufSize);
          if ReadCount > 0 then
            FS.WriteBuffer(Buffer[0], ReadCount);
          if ReadCount < BufSize then
            break;
        until ReadCount < BufSize;
      end
      else // 大小已知则直接复制数据
        FS.CopyFrom(Stream, 0);
      // 保存到本地
      FS.SaveToFile(savefileName);
      showmessage('下载成功') except on ee: exception
      do
      begin
        showmessage(ee.Message)
      end;
    end;
  finally
    screen.Cursor := crDefault;
    freeandnil(FS);
  end;

2,服务端界面:

 源码框架下载地址:https://download.csdn.net/download/dgthm/87647460

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
期待着您的参与 DELPHI社群中开源项目少之又少,我们可不可以自己组织?我们可不可以一起探讨?小弟不才,斗胆写下几行代码,来这里期待抛砖引玉。 我们身边,每天都有无数的项目开工,然后是老板对进度的紧追不舍,项目经理程序员加班的无奈,再然后或许是成功的喜悦或许是失败的哀愁,但不管结果如何,所有人心中此时最想要的,可能是好好的睡上一觉。 这无数的项目,他们有没有共同点?我们是不是一直在做重复发明轮子的蠢事?Delphi让我们搭建一个程序变得容易,我希望通过我们的努力,让我们搭建一个项目更容易,利用我们可以想到的任何办法,不管是框架源代码、模版文档、代码生成工具甚至是我们手把手经验的交流,我们的目标就是让一个项目开发更加的容易、让一个项目成功更加的容易。 这样的工作是激动人心的,可是我也和大家一样,面临着手头上项目的压力,为了能够对得起那份薪水,我只能够在下班的时间里做这些。但一个人精力太有限了,uPattern是一个模式实现单元,没有足够的时间也没有那么多精力去实现所有的模式,于是在这份源代码里,您发现您可以使用一个用户组来登录,本来这是不允许的啊,如果您想找到原因,原来uPattern中对于合成模式的实现使用的是原始的透明方式…… 一个人的力量太有限了,一个人的才智也太有限了,如果这个小生命在我一个人的手里,也许会因为得不到充足的阳光雨露而不能茁壮成长,但是如果有您的加入,多了您的呵护,相信我们的目标才更有可能实现。 如果您是高手,那么就在这里表现您的聪明才智吧。如果您是菜鸟,来这里汲取知识吧。所有的源代码都永久性公开,如果您有什么地方不清楚或者是有更好的建议,您也可以直接联系我。 ―――――――――――――――――――――――――――――――――― 这是一个应用程序框架,现在已经完成部分框架代码与用户管理、权限管理与日志管理模块。如果您有任何的问题或者是建议可以发邮件到我的邮箱,您可以使用本源代码在您的任何应用之中(包括商业应用)。如果您想要和我们一起来发展壮大这份源代码,请您发邮件给我([email protected]),或者是在下面留言。 ――――――――――――――――――――――――――――――――――     uClasses------------------------------在这里定义应用程序中的基础类     uPattern------------------------------几个模式的DELPHI实现或者定义     uAppUtils-----------------------------应用程序工具单元     uAppSet-------------------------------应用程序设置接口声明单元     uAppSetIniFile------------------------应用程序设置IniFile实现单元     uException----------------------------异常统一处理单元     uAppFactory---------------------------应用程序工厂,本工厂生产出来的就是一个一般的应用程序     uAuthAppFactory-----------------------应用程序工厂,本工厂生产出来的就是拥有权限管理、日志及用户管理的程序     ufrmAppBase---------------------------窗口基类     ufrmAppDlgBase------------------------对话框窗口基类    用户、权限与日志管理单元     Role----------------------------------权限与用户管理主要的实现单元     Log-----------------------------------日志管理单元     ufrmRoleManager-----------------------权限管理主用户界面     ufrmLogin-----------------------------用户登录界面     ufrmChangePassword--------------------更改用户密码     ufrmLog-------------------------------日志查看界面     CommandRegister-----------------------模块注册中心

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值