delphi IdTCP下载文件


本文整理自网络,侵删。

  procedure TFrmDisMain.SpeedButton1Click(Sender: TObject);
var
ReadFile:TMemoryStream;
RecevFileName,FilePath:string;
begin
IDTCPClientDown.Host := serverip;//服务器的地址

if IDTCPClientDown.Connected then
IDTCPClientDown.Disconnect;

FilePath:=Edit1.Text; //文件路径

with IDTCPClientDown do
begin
Connect;//连接到服务器
while Connected do
begin
ReadFile:=TMemoryStream.Create;//创建一个TMemoryStram对象
try

WriteLn(FilePath); //指定路径
RecevFileName:=ReadLn;//从服务器端获得文件名
ReadStream(ReadFile,-1,True);//以流模式从服务器端获得文件内容,参数分别是ReadFile表示流对象,-1表示一直读取直到对方断开,True表示在NT操作系统下提高性能,对9x无效
ReadFile.Seek(0,soFromBeginning);//定位流指针到开始
SaveDialog1.FileName:=ExtractFileName(RecevFileName);
if SaveDialog1.Execute then
begin
ReadFile.SaveToFile(SaveDialog1.FileName);
MessageBox(Handle,'文件下载成功','提示',MB_OK);
end;
end
else
begin
MessageBox(Handle,'请选择一个要下载的文件','提示',MB_OK);
Exit;
end;

finally
Disconnect;//断开连接
ReadFile.Free;//释放流对象
end;
end;
end;
close;
end;

procedure TFormServer.IdTCPServerDownExecute(AThread: TIdPeerThread);
var
SendFile:TFileStream;
RecevFileName:string;
begin
with AThread.Connection do
begin
RecevFileName:=ReadLn;
WriteLn(RecevFileName);//把文件名发送给客户端
SendFile:=TFileStream.Create(RecevFileName,fmOpenRead);//创建一个TFileStream,打开我们要发送的文件
WriteStream(SendFile);//使用流模式把文件发送到客户端
Disconnect;//断开连接
SendFile.Free;//释放流对象
end;
end;

相关阅读 >>

Delphi idhttp 设置cookie 和访问后读取cookie 值

Delphi 简单的旋转图像角度代码

Delphi unicode转汉字 ,支持自动过滤非 unicode编码

Delphi dpr文件误删怎么办

Delphi 调出windows 系统时间设置对话框

Delphi createmessagedialog

Delphi tform类有关属性简介

Delphi xe10 对 json的解析应用

Delphi urlencode与urldecode

tstringlist 常用操作

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...